我正在尝试保留一个对象 A,该对象 A 具有标记为 Cascade All 的字段 b 和 c。我想要做的是能够在 b 和 c 被持久化时运行预定义的方法,因为 A 正在被持久化。
@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;
}
所以在这里我想要的是标记 B 类的每个单独对象,这些对象通过 A 级联而不是独立地拥有该字段
isCascaded
存储为“真”。我不能使用@PrePersist,因为无论 B 是通过级联操作还是独立地保持不变,它都会被调用。