@Entity public class Organization {
@OneToMany
List<A> Aobjects;
@OneToMany
List<B> Bobjects;
@OneToMany
List<C> Cobjects;
}
我在所有@OneToMany成员上都有@OnDelete注释。删除父对象时删除这些对象的顺序是什么。假设它是声明对象的顺序是否安全。
答案 0 :(得分:1)
我在所有@OneToMany成员上都有@OnDelete注释。删除父对象时删除这些对象的顺序是什么。假设它是声明对象的顺序是否安全。
所以你在删除时使用 SQL级联删除而不是常规的Hibernate机制。由于您正在使用数据库机制,我很想说声明对象的顺序无关紧要(数据库根本不知道这个顺序),我只希望数据库能够正确处理事情。 / p>
如果您从注释生成模型,它可能会影响列的顺序,但是:
但是我遇到了一些问题,如果B inturn有一个外键引用A导致A在删除时失败
你应该在问题中提到,这是非常相关的 IMO。拿着我的答案,但正如我所说,我希望数据库引擎能够正确处理事情,数据库引擎具有所有必需的元数据。但我不是数据库专家,我不确定理论上说的是什么。
或许可以查看以下问题:
或询问有关理论的问题(以及给定引擎的实践)。