【问题标题】:Hibernate delete object without deleting related objects休眠删除对象而不删除相关对象
【发布时间】:2012-12-12 15:20:58
【问题描述】:

我有一个包含 3 个表的数据库:幻灯片、MediaItemsInSlideshows 和 Mediaitems。我正在将此数据库与使用休眠的 jsp 站点一起使用。 我希望能够在不删除媒体项的情况下删除幻灯片。不过应该删除 MediaItemsInSlideshows 中的行。

目前我使用以下代码删除幻灯片。当我使用它时,幻灯片中使用的所有媒体项都消失了。

Session session = HibernateUtil.getSessionFactory().openSession();
Slideshow s = this.getSlideshowById(id, session);
session.beginTransaction();
session.delete(s);
session.getTransaction().commit();

这是数据库的可视化表示:

【问题讨论】:

    标签: java mysql database hibernate hql


    【解决方案1】:

    删除 A 会将 B 中对它的引用设置为 null,这是架构禁止的。更改删除顺序的另一种方法是在 B 中添加反向一对多集合,并具有级联删除。只需要删除 A。 (来源:Deleting of related objects in hibernate

    【讨论】:

    • 我通过设置 cascadeType 来解决这个问题,谢谢。 :)
    猜你喜欢
    • 2013-05-25
    • 2021-07-23
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多