4

我正在使用 Hibernate,有几次不得不实现从父对象到其子对象的级联 DELETE 操作。我使用了以下两个选项。

一种选择是在父对象上公开 getChildren(),将子对象添加到返回的子对象集合中,并允许 Hibernate 自动级联 DELETE。此选项的缺点是 getChildren() 集合需要公开,即使它仅用于支持 Hibernate 级联。

另一种选择是在 ParentDao.delete(parent) 中手动查找和删除子项。此选项的缺点是更多自定义代码。但是,如果它使用批量删除语句,此选项可能会执行得更好。

你主要使用什么方法?你看到其他的优点和缺点吗?

4

1 回答 1

3

你主要使用什么方法?你看到其他的优点和缺点吗?

当我有一个真正的组合关系(并且想要删除相对较少的记录)时,我使用级联。但是,我不会仅仅为了实现删除而引入这样的关系,而是使用查询(批量 HQL DELETE 或本机 SQL 查询)。以我的经验,好处超过了所需的额外代码的“成本”(无论如何都是很小的)。

于 2010-09-25T20:54:09.393 回答