是否有Grails域对象的禁用方法名称列表?

C. *_*oss 1 grails grails-domain-class

通常当我向域对象添加辅助方法时,我在编译时遇到错误,解析为"找不到x属性".这似乎发生在方法名称上getX,setX也是最近发生的isX.我应该避免使用名单的清单吗?有没有办法注释或以其他方式标记这些方法,所以Grails不会将它们与自动属性混淆?

Bur*_*ith 7

Grails自动检测属性并假定它们是持久的.Groovy中的公共字段在引擎盖下创建了一个getter和setter,因此假定getter与持久字段相关联.

但是如果你想要一个以'get'或'is'开头但不是持久字段的getter的辅助方法,你有两个选择.一种是使用该transients列表 - 请参阅http://grails.org/doc/latest/ref/Domain%20Classes/transients.html

另一种选择是将返回值声明为def.由于它没有键入(def是Object的别名),Hibernate无法持久化,因为它不知道要使用哪种数据类型,所以它被忽略了.

我的偏好是transients列表,因为我宁愿使用自我记录的方法,它们显然是做什么的,它们接受什么参数类型,以及它们返回什么.