我有一个类,它可以被许多不同的类以多对一或一对一关系引用,或者没有引用对象。当删除此类的元素时,指向它的对象也应该被删除。实现这种行为的最美丽的方式是什么?
class A {
public remove() {
// remove the element which is pointing to me
}
}
class B {
@ManyToOne
private as
}
class C {
@ManyToOne
private as
}
...
最佳答案
首先,我不认为将业务方法放入实体类中是一个“漂亮”的解决方案。
我建议为您的 A 类创建 DAO 对象,并将 CascadeType 设置为 REMOVE 使您的关系成为双向关系:
@Entity
class A {
@OneToMany(mappedBy = "parentB", cascade = CascadeType.REMOVE)
private Set<Child> childrenB;
@OneToMany(mappedBy = "parentC", cascade = CascadeType.REMOVE)
private Set<Child> childrenC;
}
@Stateless
class daoA {
@PersistenceContext
EntityManager em;
public void remove(A a){
em.delete(a);
}
}
关于java - Jpa 删除具有替代多对一关系的可选父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543484/