我知道在hibernate中(甚至在JPA中?)批量删除操作不会级联到相关实体。
假设您有以下实体A,B和C.
B与A有一个ManyToOne关系但是没有反转(因此A没有B的列表)。
C与B具有ManyToOne关系但也没有反转(因此B没有C的列表)。
现在,如果A被删除,那么我希望删除引用此A的所有B,并且还要删除引用这些B的所有C。由于没有级联,我需要自己传播这些删除。所以问题是最好的解决方法是什么:
答案 0 :(得分:2)
我认为HQL是更好的选择
答案 1 :(得分:1)
您可以使用hibernate来执行本机sql语句。例如,您可以编写类似的内容:
session.createSQLQuery("delete from C where b_id IN (select is from B where a_id in (select id from A ...");
您可以查看本指南Hibernate native SQL