Hibernate: Cascade Type

后端 未结 3 1302
情话喂你
情话喂你 2020-12-13 20:55

Let\'s I have entity A and entity B. Entity A have @OneToOne relationship with B.
I want do next:
if

相关标签:
3条回答
  • 2020-12-13 21:12

    if A "has" B, then you must define CascadeType.ALL in A:

    public class A {
      // changes to A cascade to B
      @OneToOne(cascade = {CascadeType.ALL})
      B b
    }
    
    0 讨论(0)
  • 2020-12-13 21:25

    If Class A has Class B then CascadeType.ALL will be appiled on B. then

    Public Class A
    {
      Private B b;
      @OneToOne(cascade = CascadeType.ALL)   
      public B getB() {       
        return this.b;   
       }     
      public void B(B b) {         
        this.b = b;   
      }
    }
    

    for more read this example

    0 讨论(0)
  • 2020-12-13 21:26

    The cascade from A to B should be placed on the field referencing B in class A, the cascade from B to A should be placed on the field referencing A in class B.

    public class A {
        @OneToOne(cascade = {CascadeType.ALL})
        B b;
    }
    

    Should be in class A, as you want every action to be cascaded to B.

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

    Should be in class B, as you only want certain actions cascaded to A

    0 讨论(0)
提交回复
热议问题