Hibernate多對多關聯關係

2022-05-05 07:03:09 字數 1132 閱讀 3858

今天遇到乙個問題:有乙個的類reckoning,乙個類accountitem。這兩個類之間的關係時多對多的關聯關係。

一開始是由accountitem來維護關聯關係的,也就是reckoning.hbm.xml檔案中的如下**將inverse的值設為true.

<

set

name

="accountitems"

table

="item_reckoning"

inverse

="true"

lazy

="false"

>

但是當我在儲存物件的時候,我有以下**

accountitem accountitem = accountitemdao.getbyid(accountitem.class, new

integer(aiis));

reckoning.getaccountitems().add(accountitem);

也就是說此時雙方的關係是由accountitem來維護,但是卻用reckoning類中的set屬性來設定關聯關係。當我執行儲存操作的時候沒有報任何錯誤,但是這兩個類的中間表 item_reckoning表中卻沒有寫入任何資料。

坑爹,沒有報錯的bug真的是太難找了。。。。還好之前寫過乙個類似的,拿出來對比一下終於找到了問題所在。

既然是通過reckoning類中的set屬性來設定關聯關係。那就由reckoning來維護關聯關係。把兩者的對映檔案設定如下:

<

set

name

="accountitems"

table

="item_reckoning"

lazy

="false"

>

<

set

name

="reckonings"

table

="item_reckoning"

inverse

="true"

lazy

="false"

>

這樣就好了。至於底層的原因,。。。不懂

hibernate多對多關聯

一 配置雙向多對多關聯 以project類 專案 和emp類 員工 為例 1 建立project類,並需要定義集合型別的emp屬性 public class project public void setpid integer pid public string getpname public vo...

Hibernate雙向多對多關聯

一 配置雙向多對多關聯 以project類 專案 和emp類 員工 為例 1 建立project類,並需要定義集合型別的emp屬性 public class project public void setpid integer pid public string getpname public vo...

Hibernate雙向多對多關聯

一 配置雙向多對多關聯 以project類 專案 和emp類 員工 為例 1 建立project類,並需要定義集合型別的emp屬性 public class project public void setpid integer pid public string getpname public vo...