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