今天在遇到乙個問題,當我想通過hibernate刪除某個物件時總是報錯
各方查詢眾說紛紜,有的說是這個類設定了自動增加的主鍵,也有說主鍵id用的int應該使用integer,因為兩者的初始值不一樣,還有說是某個值應該為空,結果在刪除的時候改制被刪除了不是空值;不是持久化物件等。最後各種嘗試,其實是一對多,我先刪了多方,再來刪一方導致的,正確的做法直接刪除一方就可同時刪除一方和多方兩者的物件。
如下所示:
public
class
depart
public class employee
depart配置中
<
setname
="employees"
inverse
="true"
cascade
="all-delete-orphan"
>
<
keycolumn
="dept_id"
/>
<
one-to-many
class
="com.liuc.domain.employee"
/>
set>
employee配置中
<
many-to-one
name
="dept"
column
="dept_id"
not-null
="true"
foreign-key
="fk_emp_dept"
/>
class
>
這樣就設定好了一對多的級聯關係
在刪除乙個部門是就能將整個部門的人都刪去。。
當然這裡涉及到
即刪除一的一方會將相應的多的一方也全部刪掉,不需在單獨刪除多的一方的物件,當然這裡需要設定級聯關係為
cascade="delete-orphan
或 all
" 。
Hibernate級聯操作
最近在寫專案用到了hibernate,在使用一對多級聯操作的時候遇到了發現無法級聯儲存多的一方,首先介紹一下問題背景 使用者 user 與訂單 order 一對多關係,乙個使用者可以擁有多個訂單 一開始我把使用者存在session域中,在後台我取出了user物件 user u user reques...
hibernate級聯操作
cascadetype.remove 級聯刪除操作。刪除當前實體時,與它有對映關係的實體也會跟著被刪除。cascadetype.merge 級聯更新 合併 操作。當student中的資料改變,會相應地更新course中的資料。cascadetype.detach 級聯脫管 游離操作。如果你要刪除乙個...
Hibernate 級聯刪除
在一對多的關係對映中 在一的一方配置檔案中將會配置set節點資訊 hbm.xml配置檔案中set節點的屬性 lazy 預設是true 即使用延遲載入,false表示即時載入 order by 一的一方set集合內多的一方實體集合的排序方式 預設是主鍵排序 但可以更改 cascade 是否使用級聯操作...