如何在Grails 3中覆盖DomainClass getter

问题描述 投票:0回答:1

我正在将Grails 2应用程序升级到3.3.10,我们有很多未调用的自定义吸气剂。许多人都有可空值的后备逻辑。

Color getFavColor(){
    if(!favColor){
        return "black"
    }

    return favColor
}

进入代码似乎HibernateUtils正在直接访问该属性,无论如何我都找不到解决方法?def propertyValue = reflector.getProperty(thisObject, propertyName)

1)我缺少快速修复程序吗?

2)这里理想的模式是什么?我是新手,想知道是否应该将类似的逻辑移至服务。

Grails 3.3.10 |休眠5 | Gorm 6.1.12.RELEASE

hibernate grails gorm grails-3.3
1个回答
0
投票

[令我感到有些惊讶的是,它在Grails 2中起作用(可能是因为静态类型的return?),但是,您需要使用Groovy的direct field access operator, @来访问getter内部的基础字段。

@

作为旁注,我将其简化为这一衬里。您要依靠从字符串Color getFavColor() { if (!this.@favColor) { return "black" } return this.@favColor } "black"的自动转换吗?

Color
© www.soinside.com 2019 - 2024. All rights reserved.