grails - 在运行时修改 Grails 约束

标签 grails grails-orm

问题:

在我的网络应用程序中,我定义了一些约束。当约束属性不匹配时,我也可以将域类保存到“草稿”,我将约束 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/

相关文章:

grails - 如何在Grails中为select(组合框)使用和创建标签库

javascript - groovy grails 将集合返回给 javascript

json - Groovy 映射必须转换为带有数字对象键的 JSON 对象

java - 如果数据库未运行,启动时 grails 项目会发生什么情况?

grails - 将 Grails 域对象映射到 JDBC 表/序列

mysql - Grails:Joda LocalDate 作为 MySQL 数据库中的唯一键

grails - Hibernatate 不绑定(bind)枚举

Grails 3.3 执行H2脚本命令

spring - 您能否在 Grails 中对复合 id 进行数据绑定(bind),使其(或其中的一部分)变得可更新?

grails - 从 ins.getClass().getSimpleName() 获取 Item_$$_javassist_165