今天遇到乙個問題:有乙個的類reckoning,乙個類accountitem。這兩個類之間的關係時多對多的關聯關係。
一開始是由accountitem來維護關聯關係的,也就是reckoning.hbm.xml檔案中的如下**將inverse的值設為true.
<set
name
="accountitems"
table
="item_reckoning"
inverse
="true"
lazy
="false"
>
但是當我在儲存物件的時候,我有以下**
accountitem accountitem = accountitemdao.getbyid(accountitem.class, newinteger(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...