關於hibernate級聯的一點總結

2021-07-27 03:35:25 字數 1269 閱讀 5441

今天在遇到乙個問題,當我想通過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 是否使用級聯操作...