Как сделать каскад ложным для всех доменов Grails на глобальном уровне

Как сделать каскад на false для всех доменов Grails на глобальном уровне.

Также я хотел бы иметь возможность установить его для конкретной операции сохранения.


person Kapil Arora    schedule 29.03.2018    source источник


Ответы (1)


По первой части вашего вопроса:

Как сделать каскад на false для всех доменов Grails на глобальном уровне.

Это немного недокументированная функция, но в файле application.groovy вы можете добавить

grails.gorm.default.mapping = {
    '*' cascade:'none'
}

Имейте в виду, что каскадная проверка будет отключена, даже если вы используете validate(deepValidate:true).

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

Я тестировал это только в Grails 3.3, я не уверен, что это работает в других версиях.

person ernesto-castelan    schedule 19.10.2018