Grails удаляет ссылочные записи другим объектом домена? - PullRequest
0 голосов
/ 01 декабря 2011

Я немного озадачен следующим ...

Модель домена состоит из лица, которое имеет адреса, эти адреса также могут ссылаться на других лиц ..

Таким образом, Лицо А имеет адреса 1, 2, 3, а Лицо Б имеет адреса 1, 4, 5 Нет, когда я удаляю Персона А, Персона Б также теряет свой адрес 1 !! я был под впечатлением, что подразумевается каскад «все-удалить-сирота» для подобных ситуаций. Но, вероятно, я делаю ошибку! Как я могу решить это?

class Person { 
    Address address 
    Address addressPostal 
    Address addressInvoice 

    static mapping = { 
          address cascade:'all-delete-orphan' 
          addressPostal cascade:'all-delete-orphan' 
          addressInvoice cascade:'all-delete-orphan' 
    } 
} 

class Address { 
    String street 
    String streetNo 
    String streetSuffix 
} 

1 Ответ

1 голос
/ 01 декабря 2011

Я думаю all-delete-orphan работает по-другому.При удалении объекта many из коллекции на стороне one объект автоматически удаляется.В противном случае он просто "осиротел бы" с null в качестве внешнего ключа.

Вы можете использовать его другим способом.Например, у Address было static hasMany = [persons: Person], и вы удалили человека из него, all-delete-orphan удалит человека.

...