Как сделать каскад на false для всех доменов Grails на глобальном уровне.
Также я хотел бы иметь возможность установить его для конкретной операции сохранения.
Как сделать каскад на false для всех доменов Grails на глобальном уровне.
Также я хотел бы иметь возможность установить его для конкретной операции сохранения.
По первой части вашего вопроса:
Как сделать каскад на false для всех доменов Grails на глобальном уровне.
Это немного недокументированная функция, но в файле application.groovy
вы можете добавить
grails.gorm.default.mapping = {
'*' cascade:'none'
}
Имейте в виду, что каскадная проверка будет отключена, даже если вы используете validate(deepValidate:true)
.
Примечание. Даже если каскадная проверка отключена, если вы вручную проверяете вложенный экземпляр перед внешним экземпляром, проверка внешнего экземпляра соберет ошибки вложенного экземпляра. Это вызвало у меня изрядное замешательство.
Я тестировал это только в Grails 3.3, я не уверен, что это работает в других версиях.