Неудача преобразование значения типа 'java.lang.string' в требуемый тип 'java.lang.long' excect except java.lang.numberfJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Неудача преобразование значения типа 'java.lang.string' в требуемый тип 'java.lang.long' excect except java.lang.numberf

Сообщение 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 + "]";
}
}
< /code>
Eventservice: < /p>
@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;
}
< /code>
контроллер RSVP: < /p>
@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");
}
}
< /code>
events.html:

RSVP

< /code>
Ошибка в моем журнале консоли: < /p>
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»