我有一个包含 3 个表的数据库:Slideshows、MediaItemsInSlideshows 和 Mediaitems。我正在使用这个数据库和一个使用 hibernate 的 jsp 站点。 我希望能够删除幻灯片而不删除媒体项目。不过,MediaItemsInSlideshows 中的行应该被删除。
目前我使用以下代码来删除幻灯片。当我使用此功能时,幻灯片中使用的所有媒体项目都消失了。
Session session = HibernateUtil.getSessionFactory().openSession();
Slideshow s = this.getSlideshowById(id, session);
session.beginTransaction();
session.delete(s);
session.getTransaction().commit();
这是数据库的直观表示:
最佳答案
删除 A 会将 B 中对它的引用设置为 null,这是架构所禁止的。更改删除顺序的另一种方法是在 B 中添加反向一对多集合,并进行级联删除。只需要删除 A。 (来源:Deleting of related objects in hibernate)
关于java - Hibernate删除对象而不删除相关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13842870/