【问题标题】:Hibernate cascade vs manual delete休眠级联与手动删除
【发布时间】:2011-04-17 04:52:25
【问题描述】:

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

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

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

您主要使用什么方法?您是否看到其他优点和缺点?

【问题讨论】:

    标签: hibernate cascading-deletes


    【解决方案1】:

    您主要使用什么方法?您是否看到其他优点和缺点?

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

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 1970-01-01
      • 2011-12-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多