在我的应用程序中,我有两个实体Person and Activity
@Entity
public class Person
{
.
.
.
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphanRemoval=true)
Set<Activity> a;
// getters setters constructors
}
......和......
@Entity
public class Activity
{
.
.
.
// getters setters constructors
}
结果是一个Person对象Set<Activity>
size=2
。
有人能帮助我吗?
答案 0 :(得分:0)
从数据库中删除Activity对象时,必须更新Person中的集合,并从集合中删除该Activity对象。否则,您将对集合中不存在的Activity对象有一个损坏的引用。
另一方面,由于您启用了orphanRemoval,因此您只需从Person中的集合中删除Activity,它也应该从数据库中自动删除。
另一种选择是将集合定义为mappedBy,然后当从数据库中删除Person时,从数据库再次加载Person对象或刷新时,该集将自动更新。