0

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

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

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

这是数据库的可视化表示: 在此处输入图像描述

4

1 回答 1

1

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

于 2012-12-12T15:33:04.100 回答