У меня два класса.
public class Reservation {
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true, mappedBy = "reservation")
private List<Night> nights; \\assume getters and setters
}
public class Night {
@ManyToOne
@JoinColumn(name = "RESERVATION_ID")
private Reservation reservation;
}
Мои сохранения работают так:
Reservation r = new Reservation();
r.getNights().add(new Night());
return dao.save(r);
Это работает, так как спасает Резервацию и спасает Ночь. Но когда я смотрю на базу данных, столбец RESERVATION_ID в таблице NIGHT имеет значение null.
В предыдущих проектах (до обновления до Java 8 и JPA 2.1) мне не нужно было вручную устанавливать родительский объект для дочернего объекта, чтобы эта ассоциация сохранялась. Что-то изменилось, или я что-то не так делаю?
Редактировать:
Это правильно сохраняет ассоциацию, но раньше в этом не было необходимости.
Reservation r = new Reservation();
Night n = new Night();
n.setReservation(r);
r.getNights().add(n);
return dao.save(r);