2013-07-19 90 views
0

我有以下查詢在表中刪除一個項目,當用戶按下一個按鈕刪除的ID在休眠

String hqery = "DELETE FROM Person WHERE automobile = " selected_id; 
    Query q = hbsession.createQuery(hquery); 
    q.executeUpdate(); 

在Person類的變量是:

int id; 
String name; 
int age; 
Cars automobile; 

而Cars類中的變量有:

int id; 
String Manufacturer 
String Model; 
int Year; 

問題是汽車是一個Bean類的實例汽車,我如何使用查詢刪除課程,或者如何訪問汽車的ID以便我可以刪除它。我想這樣做的原因是因爲當我從汽車表中刪除一輛汽車時,我還需要在其他表格中刪除汽車的所有實例。

回答

2

我想這樣做的原因是因爲當我從汽車表中刪除汽車時,我還需要在其他汽車表中刪除汽車的所有實例。

您需要可以創建外鍵在數據庫ON DELETE CASCADE集,或使用Hibernate的孤兒刪除功能的依賴對象。我建議使用組合。在數據庫中創建FOREIGN KEY引用,但將它們設置爲ON DELETE RESTRICT。然後,通過刪除孤兒等來管理Hibernate中的關係。數據庫檢查將確保如果您在Hibernate級別錯過某些東西,您將不會在數據庫中找到不一致的數據;相反,當您運行查詢或嘗試提交時,您會遇到數據庫錯誤。

參見: