JPA意外的行为,我有一些怀疑JPA的CascadeType.ALL
与@ManyToMany
协会的行为。我有以下情形:共享孩子实体
有Employee
S和Department
S之间的@ManyToMany
伴随CascadeType.ALL
在Employee
侧。
如果我创建了两个员工属于同一个部门
Department sales = new Department("sales");
Employee alice = new Employee("alice", sales);
Employee bob = new Employee("bob", sales);
,然后我坚持他们按预期的部门依然存在,由于级联。
然后我删除alice
和bob
,一次一个。当我删除alice
时,Employee
被删除,但销售部门未更改。
但是当我删除bob
(在alice
之后)时,销售部门自动删除。
这是为什么?为什么我在删除alice
时不试图删除该部门?我会预料到的!
谢谢!
是的,但然后什么是Hibernate试图做什么?删除鲍勃后是否删除部门,因为它知道没有其他人参考它?我严重怀疑这是事实。 –