2015-06-29 3 views
0

У меня многие ко многим соотношение между А и В, где А belongsTo ВGrails: удаление только с одной стороны многие-ко-многим отношению

Примем следующие данные внутри БД:

<a1,b1> 
<a1,b2> 
<a2,b1> 

Как я могу удалить все a1, поэтому база данных будет держать

<a2,b1> 

в самой элегантной \ автоматическим способом, используя отображение?

ответ

0

К сожалению, каскад «all-delete-orphan», который звучит очень уместно, applies only to one-to-many relationships (я только что протестировал его по вашему сценарию, и он действительно не работает). Я не могу придумать более элегантный способ справиться с этим, кроме использования события hibernate beforeDelete на A, чтобы удалить все осиротевшие B's.

Рассмотрите сопоставление таблицы объединений как объекта, как предложено here, чтобы избежать головных болей, а также если вам нужна производительность, как предлагает Берт Беквит here. Я ненавижу этот не-объектно-ориентированный подход, но вам, возможно, придется следовать ему. По крайней мере, у вас будет каскадное удаление.

+0

К сожалению, это не представляется возможным. – shaydel

Смежные вопросы