我正在尝试向grails域类添加一个方法,例如
class Item {
String name
String getReversedName() {
name.reverse()
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用grails控制台加载应用程序时,我收到以下错误:
引起:org.springframework.beans.factory.BeanCreationException:创建名为'sessionFactory'的bean时出错:init方法的调用失败; 嵌套异常是org.hibernate.PropertyNotFoundException:在类Item中找不到属性reversedName的setter ... 18更多
看起来Hibernate将getReversedName()解释为属性的getter,但是在这种情况下它是派生字段,因此不应该持久化.显然,在我的实际代码中,我所暴露的业务逻辑更为复杂,但与此问题无关.我希望能够在我的代码/ gsps中调用item.reversedName.
如何在没有Grails尝试使用Hibernate映射它的情况下,为Grails域类中的方法提供属性(getter)访问权限?
tim*_*tes 11
我相信你有两个选择:
1)使用def
def getReversedName() {
name.reverse()
}
Run Code Online (Sandbox Code Playgroud)
2)在域对象的顶部添加瞬态声明:
static transients = [ 'reversedName' ]
Run Code Online (Sandbox Code Playgroud)
[编辑] (我跟#1一起去)(我跟#2一起去);-)
归档时间: |
|
查看次数: |
1859 次 |
最近记录: |