假设域类具有简单关联:
class User {
Country country
}
默认情况下,Grails允许通过id:
绑定它new User(country: 1).country
≫ Country: 1
我试图使用BindUsing注释将其绑定到另一个属性:
class User {
@BindUsing({ obj, src ->
Country.findByCode(src['country'])
})
Country country
}
但它失败了,即使该国存在:
Country.findByCode('US')
≫ Country: 1
new User(country: 'US').country
≫ null
此外,我似乎无法调试闭包,因为如果我尝试打印来自src
对象的任何内容,我会收到此错误:
java.lang.IncompatibleClassChangeError: Expected static method
java.io.PrintStream.println(Ljava/lang/Object;)V
打印常量值有效。