Рассмотрим следующие классы доменов
class Business{
static hasMany = [contacts:ContactPerson]
}
class ContactPerson{
}
С учетом следующих классов доменов, скажем, мы используем следующие примеры:
Алиса является контактным лицом ACME. Боб и Кэрол являются контактными лицами Calamity Corp.
Скажем, я хотел удалить Боба из таблицы ContactPerson. Таким образом:
bob.delete(flush:true)
Но код приведет к тому, что сервер будет жаловаться на ограничения:
ERROR: update or delete on table "contact_person" violates foreign key constraint
"fk4a69c6b329ef2fe1" on table "business_contact_person"
Detail: Key (id)=(174) is still referenced from table "business_contact_person".
В этом контексте выдается исключение, потому что Боб все еще связан с Calamity Corp.
Как удалить Боба из таблицы ContactPerson? Я хотел полностью удалить Боба из базы данных. Я не хочу добавлять принадлежность, так как я не хочу каскадно удалять дочерние элементы Business (то есть, если я удаляю Acme Corp из базы данных, я все же хочу, чтобы Алиса была в системе).
Я видел примеры отсоединения родителя от ребенка , но не наоборот.