в моем коде у меня есть две сущности BusDetails и User. Пользователь и BusDetails имеют много ко многим отношениям. Всякий раз, когда я пытаюсь забронировать автобус, данные сохраняются в таблице соединений в базе данных, но я получаю это исключение: Не удалось преобразовать значение свойства типа 'java.lang.String' в требуемый тип 'java.util.Date' для свойства 'date';вложенное исключение - java.lang.IllegalArgumentException: не удалось проанализировать дату: длина ее не точно 10 символов]]
Таблица пользователей:
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int u_id;
@Column
@NotEmpty(message = "Name cannot be empty")
private String name;
@Column
@NotEmpty(message = "Username cannot be empty")
private String userName;
@Column
@NotEmpty(message = "please enter number")
@Size(min = 10,max = 10, message = "10 digits required")
private String number;
@Column
@NotEmpty
@Size(min=8,message = "Minimum 8 characters required")
private String password;
@ManyToMany(cascade = CascadeType.MERGE,fetch = FetchType.EAGER)
@JoinTable(name = "user_role",joinColumns = @JoinColumn(name = "u_id"), inverseJoinColumns = @JoinColumn(name = "r_id"))
public Set<Role> roles;
@ManyToMany(cascade = CascadeType.PERSIST,fetch = FetchType.EAGER)
@JoinTable(name = "user_busdetails", joinColumns = @JoinColumn(name = "u_id") , inverseJoinColumns = @JoinColumn(name = "bus_Id"))
public Set<BusDetails> bus = new HashSet<BusDetails>();
//gettersAndSetters
BusDetails:
@Entity
@Component("BusDetails")
public class BusDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int bus_Id;
@Column
public String fromDestination;
@Column
public String toDestination;
@Column
@DateTimeFormat
@Temporal(TemporalType.DATE)
private Date date;
@Column
private String travels;
@Column
private String bus_Type;
@Column
private String seats_Available;
@Column
public String fare;
@Column
private String departure;
@ManyToMany(fetch = FetchType.EAGER,mappedBy = "bus")
@JsonIgnore
public Set<User> user = new HashSet<User>();
//gettersAndSetters
BookController:
@PostMapping("/bookbus")
@ResponseBody
public BusDetails bookBus(@ModelAttribute BusDetails bus) {
System.out.println(bus.getDate());
return busDetail.bookBus(bus);
}
@InitBinder
public void initBinder(WebDataBinder binder){
binder.registerCustomEditor( Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-
MM-dd"), true, 10));
}
BookService:
public BusDetails bookBus(BusDetails bus) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String currentPrincipleName = authentication.getName();
User user = userRepo.findByUserName(currentPrincipleName);
user.getBus().add(bus);
System.out.println(user);
System.out.println(bus);
userRepo.save(user);
return bus;
}