1

Cascade All としてマークされたフィールド b と c を持つオブジェクト A を永続化しようとしています。私がやりたいことは、A が永続化されているために b と c が永続化されているときに、事前定義されたメソッドを実行できるようにすることです。

@PrePersist は機能しません。このメソッドを起動するだけにしたいからです。b と c が A のカスケード操作によって永続化されている場合です。b と c が個別に永続化されている場合は、この行を実行したくありません。コードの。

例:

@Entity
public class A{

    @Id;  
    Long id;         

    @OneToOne(mappedBy="a",cascade=CascadeType.ALL)
    B b;

}

@Entity
public class B{

    @Id
    Long id;

    String field;

    boolean isCascaded;

}

だからここで私が望むのは、フィールドを持つために独立してではなく、Aを介してカスケードされたクラスBの個々のオブジェクトをマークすることです

カスケード

「真」として保存されます。@PrePersist は使用できません。これは、B がカスケード操作によって永続化されているか、独立して永続化されているかに関係なく、常に呼び出されるためです。

4

0 に答える 0