GORM задает значение null для внешнего ключа во многих отношениях.

65
6

Мой домен:

Company {
String name
}

Contact {
String name
Company compa

static constraints = {
compa (nullable: true)
}
}

Я не могу удалить компанию, если у нее есть ограничение внешнего ключа от Contact. Я хочу, чтобы удаление работало, и атрибут compa был установлен на null при удалении Компании.

Есть ли ограничение, которое это делает? Есть ли лучший способ сделать это, чем я пытаюсь?

спросил(а) 2021-01-19T12:56:40+03:00 9 месяцев, 1 неделя назад
1
Решение
91

Попробуйте, возможно, есть другие варианты. Я не тестировал этот код, просто чтобы дать вам представление.

В компании.groovy:

 def beforeDelete() {
Contact.withNewSession {
Contact.findAllByCompany(this).each {
it.company = null
it.save()
}
}
}

ответил(а) 2021-01-19T12:56:40+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема