У меня есть три класса (Дом, Комната, Адрес), которые являются постоянными (Отображается с помощью JPA / Hibernate)
@Entity
@Table(name = "HOUSE")
@AttributeOverrides({@AttributeOverride(name = "house_id", column = @Column(name = "house_id"))})
public class House{
@Basic
private String key;
@OneToMany(mappedBy = "house", cascade = {CascadeType.ALL}, orphanRemoval = true)
private List<Room> rooms;
@OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST})
@JoinColumn(name = "add_id")
private Address address;
}
public static void main(String args){
String key="key1";
Room room1=...
Room room2=...
List<Room> rooms=//add the two rooms
.
.
House house= new House(key, rooms, address);
// Here is my question.
// Now I call the save method on the persistent class
house.save();
}
1) Будут ли объекты Address и Room сохраняться автоматически или мне придется вызывать метод save для каждого из них (room1.save()
, room2.save()
, address.save()
) перед вызовом house.save()
? Как насчет того, когда я удаляю дом obj?
2) Класс «дом» является вершиной иерархии. Я понял, что если мы вызовем сохранение объекта-владельца, оно сохранит номер и адрес. Как насчет обратного? Если я отредактировал комнату, как мне убедиться, что «дом» знает об этом?