让我有实体A
和实体B
。实体A
与@OneToOne
具有B
关系。
我接下来要做:
如果我删除A,那么B也必须删除。
如果我删除B,那么A也不会删除。
我必须在哪个实体中设置
@OneToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
我必须在哪一边
@OneToOne(cascade = {CascadeType.ALL})
?
最佳答案
从A到B的级联应该放在引用B
中的A
的字段上,从B到A的级联应该放在引用A
中的B
的字段上。
public class A {
@OneToOne(cascade = {CascadeType.ALL})
B b;
}
应该在
A
类中,因为您希望将每个操作级联到B
。public class B {
@OneToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
A a;
}
应该在
B
类中,因为您只希望将某些操作级联到A
关于java - hibernate :级联类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10551485/