如果只是想刪除兩個表之間建立的關係,則只需要在持久層做如下操作:
session session = hibernateutils.getcurrentsession();
string hql="from supplier s where s.s_name=:name";
@suppresswarnings("rawtypes")
query query = session.createquery(hql);
query.setstring("name", s_name);
supplier supplier = (supplier) query.uniqueresult();
user user = session.get(user.class, u_id);
user.getsuppliers().remove(supplier);
只需要從乙個主控方呼叫remove即可,隨後業務邏輯層tx.commit,這樣第三方維護表中的關係欄位就會刪除,而不需要做其他操作
如果用了級聯刪除,呼叫delete會將關聯表的相關欄位也刪除,不僅僅是關係,所以一般不使用級聯刪除
hibernate的多對多
近日工作中遇到多對多,以前未曾用過hibernate,這次也算是摸著石頭過河。之前試驗了級聯的cascadetype.all,卻發現當刪除部門表的時候,中間表資料刪除了,結果將人員表相關聯的資料也全部刪除了。後來將級聯改為cascadetype.persist,cascadetype.merge,倒...
hibernate的多對多
1.herbernate一對多自關聯 樹形選單查詢可能出現的問題 當載入一級節點的時候沒問題 強制載入 載入二級載入時候,由於設定了強制載入,同樣可以載入出所有的二級節點。沒問題 載入 節點時,這是session關閉了,並且預設採用的是懶載入 許可權選單載入有兩種方式 1 一次性將資料庫表中的資料全...
hibernate的多對多
多對多關聯是hibernate中一種比較特殊的關聯,它需要借助中間表來完成多對多資訊的儲存。多對多關聯只有雙向關聯。資料庫的多對多 資料庫中不能直接對映多對多 處理 建立乙個橋接表 中間表 將乙個多對多關係轉換成兩個一對多。hibernate的多對多 hibernate可以直接對映多對多關聯關係 看...