一尘不染

JPA orphanRemoval = true与ON DELETE CASCADE DML子句有何不同

hibernate

我对JPA 2.0 orphanRemoval属性有些困惑。

我想我可以看到,当我使用JPA提供程序的数据库生成工具来创建基础数据库DDL以使其具有ON DELETE CASCADE特定关系时,这是必需的。

但是,如果数据库存在并且已经具有ON DELETE CASCADEon关系,这是否不足以适当地级联删除?orphanRemoval另外还做什么?

干杯


阅读 260

收藏
2020-06-20

共1个答案

一尘不染

orphanRemoval与无关ON DELETE CASCADE

orphanRemoval是一个完全 ORM特定的东西
。当不再从“父”实体中引用“子”实体时,例如,当您从父实体的相应集合中删除子实体时,它会将“子”实体标记为要删除。

ON DELETE CASCADE特定数据库的事物 ,当删除“父”行时,它将删除数据库中的“子”行。

2020-06-20