關於Hibernate的多對多的刪除

2021-09-05 12:08:01 字數 567 閱讀 5965

如果只是想刪除兩個表之間建立的關係,則只需要在持久層做如下操作:

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可以直接對映多對多關聯關係 看...