加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

grails – 使用getter样式方法名称将业务逻辑添加到域类

发布时间:2020-12-14 16:26:41 所属栏目:大数据 来源:网络整理
导读:我正在尝试向grails域类添加一个方法,例如 class Item { String name String getReversedName() { name.reverse() }} 当我尝试使用grails控制台加载应用程序时,我收到以下错误: Caused by: org.springframework.beans.factory.BeanCreationException: Error
我正在尝试向grails域类添加一个方法,例如

class Item {

  String name

  String getReversedName() {
    name.reverse()
  }

}

当我尝试使用grails控制台加载应用程序时,我收到以下错误:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactory’:Invocation of init method failed; nested exception is org.hibernate.PropertyNotFoundException: Could not find a setter for property reversedName in class Item
… 18 more

看起来Hibernate将getReversedName()解释为属性的getter,但是在这种情况下它是派生字段,因此不应该持久化.显然,在我的实际代码中,我所暴露的业务逻辑更为复杂,但与此问题无关.我希望能够在我的代码/ gsps中调用item.reversedName.

如何在没有Grails尝试使用Hibernate映射它的情况下,为Grails域类中的方法提供属性(getter)访问权限?

解决方法

我相信你有两个选择:

1)使用def

def getReversedName() {
  name.reverse()
}

2)在域对象的顶部添加瞬态声明:

static transients = [ 'reversedName' ]

[编辑](我跟#1一起去)(我跟#2一起去);-)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读