我有一个名为“House”的实体,其中包含多个“Room”,设置如下:
House.java:
现在,如果我直接通过实体管理器删除一个房间,它不会被删除:
如果我从收藏中删除它,它就被删除了。
有人能解释一下这个行为吗?谢谢!
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()
!!! - aldo.roman.nurena