问题:
在我的网络应用程序中,我定义了一些约束。当约束属性不匹配时,我也可以将域类保存到“草稿”,我将约束 nullable
设置为 true
。在以下过程中,我可以修改对象,然后完成我想要进行完整验证的过程。这意味着我想添加 nullable:false
属性。
- 问题 1:有没有办法在运行时扩展/更改约束?
- 问题 2:当域类具有嵌套约束(例如其他域类引用)时,是否有办法迭代所有约束
谢谢
最佳答案
- 答案 1:是的,也许可以。
- 答案 2:是。
例如:
def user = new User()
for(constraint in user.constraints) {
constraint.value.setBlank(true)
constraint.value.setNullable(false)
}
对于嵌套字段:
for(constraint in user.someNestedFields.constraints) {
....
}
但我不建议这样做。它看起来像是糟糕的架构。
要保存域实体而不进行验证,只需调用 save(false)
。
关于grails - 在运行时修改 Grails 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19972767/