grails - 域构造函数上缺少 transient 属性(带有映射参数)

标签 grails grails-orm

在域类上使用 map 自动创建不会填充 transient 属性:

class Address {
  String street
  String number
  static transients = ["number"]
}

def address = new Address(street: "King's Street", number: "23")
println address.street //King's Street
println address.number //null

有什么好的理由吗? Grails 域实例化会覆盖默认的 Groovy 行为吗?

最佳答案

你可以通过两种方式做到这一点。

  • 如果要使 transient 字段,则需要对其进行绑定(bind)。
    class Address {
    String street
    String number
    
    static constraints = {
        number bindable: true, nullable:true
    }
    static transients = ['number']
    }
    
  • 您可以使用一些 getter 方法绑定(bind)它。
    class Address {
    
    String street
    String number
    
    String getDifferentNumber() { number }
    
    static transients = ['differentNumber']
    }
    

  • 希望它会帮助你。享受。

    关于grails - 域构造函数上缺少 transient 属性(带有映射参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29665932/

    相关文章:

    jquery对话框和ajax打开另一个对话框

    grails - 如何使用Grails ORM检索具有max,offset和sort参数的列表

    Grails 对象引用未保存的 transient 实例

    email - createLink 无法在(邮件)模板中工作?

    hibernate - 在GORM中使用复合键

    java - 无法调用需要 java.lang.Class 参数的方法?

    java - 如何在GORM中GRAILS的类列和hibernate的DTYPE列之间进行转换

    java - 您可以将 Controller 列表参数与 Hibernate 标准结合起来吗?

    java - 属性的值无法在 beforeInsert() 内更新

    mysql - 如何使事务在 Grails 中工作