休眠:级联类型

Ily*_*lya 15 java hibernate jpa

我们有实体A和实体B.实体与... A@OneToOne关系B.
我想做下一步:
如果我删除A那么B也必须删除.
如果我删除B,则A不会被删除.

我必须在哪个实体中设置

@OneToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})  
Run Code Online (Sandbox Code Playgroud)

我必须在哪一方设定

@OneToOne(cascade = {CascadeType.ALL})  
Run Code Online (Sandbox Code Playgroud)

Luk*_*oid 30

从A到B的级联应放在B类中引用的字段上A,从B到A的级联应放在A类中引用的字段上B.

public class A {
    @OneToOne(cascade = {CascadeType.ALL})
    B b;
}
Run Code Online (Sandbox Code Playgroud)

应该在课堂上A,因为你希望每个动作都级联到B.

public class B {
    @OneToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
    A a;
}
Run Code Online (Sandbox Code Playgroud)

应该在课堂上B,因为你只想要某些级联的动作A