От новичка до гибернации. У меня есть две таблицы A и B, которые имеют отношения «многие ко многим», определяемые таблицей AB (A_ID и B_ID) со ссылкой внешнего ключа на A.A_ID и B.B_ID и каскадом при удалении и обновлении, определенным.
Я сопоставил
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"
}
, изначально в БД установлены 3 записи в таблице AB
(1,100)
(1,200)
(1,300)
Окончательные результаты в БД должны были быть
(1,100)
(1,200)
последняя строка (1300) должна быть удалена.
Любая помощь приветствуется.