Hibernate級聯操作

2021-07-31 04:52:02 字數 617 閱讀 7901

最近在寫專案用到了hibernate,在使用一對多級聯操作的時候遇到了發現無法級聯儲存多的一方,首先介紹一下問題背景

使用者(user)與訂單(order)------一對多關係,乙個使用者可以擁有多個訂單

一開始我把使用者存在session域中,在後台我取出了user物件

user u = (user)request.getsession().getattribute("user");
然後我就直接
u.getorders().add(order);
這種做法是錯誤的,因為session域中取出的物件不是持久化物件

所以改正後我採用的方法是

user u = (user)request.getsession().getattribute("user");

//注意:從session域中取出來的user物件是臨時物件,必須轉化成持久化物件才會級聯儲存order

user user = (user) session.get(user.class,u.getid());

user.getorders().add(order);

這是我想到的方法,可能有更好的歡迎交流

hibernate級聯操作

cascadetype.remove 級聯刪除操作。刪除當前實體時,與它有對映關係的實體也會跟著被刪除。cascadetype.merge 級聯更新 合併 操作。當student中的資料改變,會相應地更新course中的資料。cascadetype.detach 級聯脫管 游離操作。如果你要刪除乙個...

Hibernate 級聯刪除

在一對多的關係對映中 在一的一方配置檔案中將會配置set節點資訊 hbm.xml配置檔案中set節點的屬性 lazy 預設是true 即使用延遲載入,false表示即時載入 order by 一的一方set集合內多的一方實體集合的排序方式 預設是主鍵排序 但可以更改 cascade 是否使用級聯操作...

Hibernate多表操作 級聯 外來鍵維護

一對多 乙個部門對應多個員工,乙個員工只能屬於乙個部門。乙個客戶對應多個聯絡人,乙個聯絡人只能屬於乙個客戶 一對多建表 在多的一方建立外來鍵。多對多 乙個學生可以選擇多門課程,一門課程可以被多個學生選擇。乙個使用者可以選擇多個角色,乙個角色可以被多個使用者選擇。多對多建表 建立中間表。中間表至少有兩...