2012-12-12 161 views
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(); 

這是數據庫的視覺表示: enter image description here

回答

1

刪除將參考設置爲它在B到null,其由模式禁止的。另一種更改刪除順序的方法是在B中添加一個反向的一對多集合,並進行級聯刪除。只需要刪除A即可。 (來源:Deleting of related objects in hibernate

+0

我解決了它通過設置cascadeType來堅持,謝謝。 :) – Jerodev