4
新手到休眠我有兩個表A和B有多對多關係定義的表AB(A_ID和B_ID)外鍵引用A.A_ID和B.B_ID和級聯在刪除和更新定義。休眠多對多關係cascade
我已映射
a.hbm.xml已
<set name="bSet" table="AB" inverse="true" lazy="false" fetch="select" cascade="all">
<key>
<column name="A_ID" not-null="true" />
</key>
<many-to-many class="objectB" >
<column name="B_ID" not-null="true" />
</many-to-many>
</set>
b.hbm.xml已
<set name="aSet" table="AB" inverse="false" lazy="false" fetch="select" cascade="all">
<key>
<column name="B_ID" not-null="true" />
</key>
<many-to-many class="objectA">
<column name="A_ID" not-null="true" />
</many-to-many>
</set>
//ObjectA.java has
private Set<ObjectB> bSet = new HashSet<objectB>(0);
//ObjectB.java has
private Set<ObjectA> aSet = new HashSet<objectA>(0);
從前端發送目的與集的JSON的B的表A正在更新正確,而AB是不變的。
有人能指出我哪裏出錯了嗎? 這裏是JSON
{
"a_field1": "value1",
"a_field2": "value2",
"aId": 1,
"bSet": [
{
"bId": 100
},
{
"bId": 200
}
],
"a_field3": "value3"
}
最初的DB是在AB表
(1,100)
(1,200)
(1,300)
在db最終結果應該是
(1,100)
(1,200)
最後一排設置了3個記錄(1,300)應該已被刪除。
任何幫助,非常感謝。
- 沙阿
是這是缺少的鏈接之一,我也不得不刪除級聯和inverse =「false」。這就是它。 – Shah 2011-06-10 20:23:32