0

スライドショー、MediaItemsInSlideshows、Mediaitemsの3つのテーブルを持つデータベースがあります。私はこのデータベースをhibernateを使用する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内のAへの参照がnullに設定されます。これは、スキーマで禁止されています。削除の順序を変更する代わりに、カスケードされた削除を使用して、逆の1対多のコレクションをBに追加することもできます。Aの削除のみが必要になります。(ソース:休止状態の関連オブジェクトの削除

于 2012-12-12T15:33:04.100 に答える