У меня возникла эта ошибка, и я не знаю, что еще нужно устранить. Я просто пытаюсь заставить пользователя нажать кнопку «RSVP» и зарегистрировать его в базе данных вместе с идентификатором пользователя, который нажал кнопку. Каждый раз, когда я нажимаю кнопку, я перехожу по URL-адресу /event/null.
Event.java:
@Entity
public class Event {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "event_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id")
@OnDelete(action = OnDeleteAction.CASCADE)
private User user;
private String message;
@JoinTable(name = "rsvp_status", joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "event_id"))
private Boolean rsvp = false;
@CreationTimestamp
private Date createdAt;
public Event() {}
public Event(User user, String message, Boolean rsvp, Date createdAt) {
this.user = user;
this.message = message;
this.rsvp = rsvp;
this.createdAt = createdAt;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Boolean getRsvp() {
return rsvp;
}
public void setRsvp(Boolean rsvp) {
this.rsvp = rsvp;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
@Override
public String toString() {
return "Event [id=" + id + ", user=" + user + ", message=" + message + ", rsvp=" + rsvp + ", createdAt="
+ createdAt + "]";
}
}
EventService:
@Service
public class EventService {
@Autowired
private EventRepository eventRepository;
@Autowired
UserService userService;
public Event findEventById(Long id) {
Optional optionalEvent = eventRepository.findById(id);
Event event = null;
if(optionalEvent.isPresent()) {
event = optionalEvent.get();
return event;
} else {
return event;
}
}
public List findAll() {
List events = eventRepository.findAllByOrderByCreatedAtDesc();
return formatEvents(events);
}
public List findAllByUser(User user) {
List events = eventRepository.findAllByUserOrderByCreatedAtDesc(user);
return formatEvents(events);
}
public List findAllByUsers(List users){
List events = eventRepository.findAllByUserInOrderByCreatedAtDesc(users);
return formatEvents(events);
}
public void save (Event event) {
eventRepository.save(event);
}
private List formatEvents(List events) {
List displayEvents = formatTimestamps(events);
return displayEvents;
}
private List formatTimestamps(List events) {
List response = new ArrayList();
PrettyTime prettyTime = new PrettyTime();
SimpleDateFormat simpleDate = new SimpleDateFormat("M/d/yy");
Date now = new Date();
for (Event event : events) {
EventDisplay eventDisplay = new EventDisplay();
eventDisplay.setUser(event.getUser());
eventDisplay.setMessage(event.getMessage());
long diffInMillies = Math.abs(now.getTime() - event.getCreatedAt().getTime());
long diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
if (diff > 3) {
eventDisplay.setDate(simpleDate.format(event.getCreatedAt()));
} else {
eventDisplay.setDate(prettyTime.format(event.getCreatedAt()));
}
response.add(eventDisplay);
}
return response;
}
Контроллер Rsvp:
@Controller
public class RsvpController {
@Autowired
private UserService userService;
@Autowired
EventService eventService;
@PostMapping(value = "/event/{id}")
public String rsvp(@PathVariable Long id, @RequestParam String submit, Event event, HttpServletRequest request,
Model model) {
//getting the event by Id
Event eventToRsvp = eventService.findEventById(id);
if(submit.equals("up")) {
if(eventToRsvp != null) {
event.setRsvp(true);
eventService.save(event);
}
}
return "redirect:" + request.getHeader("Referer");
}
}
Events.html:
RSVP
Ошибка в журнале консоли:
2021-03-29 18:08:21.511 WARN 17584 --- [nio-8080-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "null"]
Подробнее здесь: https://stackoverflow.com/questions/668 ... -lang-long
Не удалось преобразовать значение типа «java.lang.String» в требуемый тип «java.lang.Long», вложенное исключение java.la ⇐ JAVA
Программисты JAVA общаются здесь
1772384835
Anonymous
У меня возникла эта ошибка, и я не знаю, что еще нужно устранить. Я просто пытаюсь заставить пользователя нажать кнопку «RSVP» и зарегистрировать его в базе данных вместе с идентификатором пользователя, который нажал кнопку. Каждый раз, когда я нажимаю кнопку, я перехожу по URL-адресу /event/null.
Event.java:
@Entity
public class Event {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "event_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id")
@OnDelete(action = OnDeleteAction.CASCADE)
private User user;
private String message;
@JoinTable(name = "rsvp_status", joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "event_id"))
private Boolean rsvp = false;
@CreationTimestamp
private Date createdAt;
public Event() {}
public Event(User user, String message, Boolean rsvp, Date createdAt) {
this.user = user;
this.message = message;
this.rsvp = rsvp;
this.createdAt = createdAt;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Boolean getRsvp() {
return rsvp;
}
public void setRsvp(Boolean rsvp) {
this.rsvp = rsvp;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
@Override
public String toString() {
return "Event [id=" + id + ", user=" + user + ", message=" + message + ", rsvp=" + rsvp + ", createdAt="
+ createdAt + "]";
}
}
EventService:
@Service
public class EventService {
@Autowired
private EventRepository eventRepository;
@Autowired
UserService userService;
public Event findEventById(Long id) {
Optional optionalEvent = eventRepository.findById(id);
Event event = null;
if(optionalEvent.isPresent()) {
event = optionalEvent.get();
return event;
} else {
return event;
}
}
public List findAll() {
List events = eventRepository.findAllByOrderByCreatedAtDesc();
return formatEvents(events);
}
public List findAllByUser(User user) {
List events = eventRepository.findAllByUserOrderByCreatedAtDesc(user);
return formatEvents(events);
}
public List findAllByUsers(List users){
List events = eventRepository.findAllByUserInOrderByCreatedAtDesc(users);
return formatEvents(events);
}
public void save (Event event) {
eventRepository.save(event);
}
private List formatEvents(List events) {
List displayEvents = formatTimestamps(events);
return displayEvents;
}
private List formatTimestamps(List events) {
List response = new ArrayList();
PrettyTime prettyTime = new PrettyTime();
SimpleDateFormat simpleDate = new SimpleDateFormat("M/d/yy");
Date now = new Date();
for (Event event : events) {
EventDisplay eventDisplay = new EventDisplay();
eventDisplay.setUser(event.getUser());
eventDisplay.setMessage(event.getMessage());
long diffInMillies = Math.abs(now.getTime() - event.getCreatedAt().getTime());
long diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
if (diff > 3) {
eventDisplay.setDate(simpleDate.format(event.getCreatedAt()));
} else {
eventDisplay.setDate(prettyTime.format(event.getCreatedAt()));
}
response.add(eventDisplay);
}
return response;
}
Контроллер Rsvp:
@Controller
public class RsvpController {
@Autowired
private UserService userService;
@Autowired
EventService eventService;
@PostMapping(value = "/event/{id}")
public String rsvp(@PathVariable Long id, @RequestParam String submit, Event event, HttpServletRequest request,
Model model) {
//getting the event by Id
Event eventToRsvp = eventService.findEventById(id);
if(submit.equals("up")) {
if(eventToRsvp != null) {
event.setRsvp(true);
eventService.save(event);
}
}
return "redirect:" + request.getHeader("Referer");
}
}
Events.html:
RSVP
Ошибка в журнале консоли:
2021-03-29 18:08:21.511 WARN 17584 --- [nio-8080-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "null"]
Подробнее здесь: [url]https://stackoverflow.com/questions/66862481/failed-convert-value-of-type-java-lang-string-to-required-type-java-lang-long[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия