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 がカスケード操作によって永続化されているか、独立して永続化されているかに関係なく、常に呼び出されるためです。