У меня есть объект, называемый "Дом", который содержит несколько "Room" с, что установка следующим образом:Hibernate: коллекция удалить ребенка
House.java:
@Entity
public class House {
@OneToMany(mappedBy = "house", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Item> rooms;
...
}
Room.java:
@Entity
public class Room {
@ManyToOne
@JoinColumn(name = "houseId")
private House house;
...
}
Теперь, если я удалю комнату непосредственно через менеджера объекта он не удаляется:
getEntityManager().contains(room); // returns true
getEntityManager().remove(room);
getEntityManager().flush();
Если я удалить его из коллекции, он удаляется:
house.getRooms().remove(room);
getEntityManager().persist();
getEntityManager().flush();
Может кто-нибудь объяснить мне такое поведение? Спасибо!
Спасибо за 'flush()' !!! –