Класс моего отеля:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long hotelId;
private String hotelName;
private String hotelDescription;
private String hotelAmenties;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "address_id", referencedColumnName = "id")
private Address address;
класс адресов:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String roadNumber;
private String city;
private String country;
@OneToOne(mappedBy = "address")
private Hotel hotel;
Форма:
<div class="input-field col s12">
<input id="roadNumber" type="text" class="validate"name="address.roadNumber" placeholder="Road number"/>
<label for="roadNumber">Road Number</label></div>
<div class="input-field col s12">
<input id="city" type="text" class="validate" name="address.city" placeholder="city"/>
<label for="city">city</label></div>
<div class="input-field col s12">
<input id="country" type="text" class="validate" name="address.country" placeholder="country"/>
<label for="country">Country</label></div>
Контроллер:
@GetMapping("/addHotel")
public String addHotelPage(Model model){
Hotel hotel = new Hotel();
Address address = new Address();
model.addAttribute("hotel",hotel);
return "addhotel";
}
@PostMapping("/addHotel")
public String addHotel(Model model, @ModelAttribute("hotel") @Valid Hotel hotel, BindingResult result,
HttpServletRequest request){
if (result.hasErrors()){
model.addAttribute("error", true);
return "addhotel";
}
Address address = new Address();
hotel.setAddress(address);
model.addAttribute("hotel", hotel);
model.addAttribute("address", address);
hotelService.save(hotel);
return "addhotel";
}
Я хочу сохранить информацию об отеле и адресную информацию в таблице отелей и в таблице адресов. Когда я отправляю информацию об отеле, которая сохраняется, но адресная информация не сохраняется, мой код указан выше. почему адресная информация не сохраняется в базе данных. где моя ошибка?