首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从我不想持久化的getter方法返回一个默认实例

从我不想持久化的getter方法返回一个默认实例
EN

Stack Overflow用户
提问于 2012-02-23 03:00:43
回答 1查看 119关注 0票数 1

我有两个域对象:

代码语言:javascript
复制
Customer
CustomerConfig

客户与CustomerConfig之间存在1对1的关联。对于没有显式保存的CustomerConfig的客户,有一个具有默认设置的默认CustomerConfig。

代码语言:javascript
复制
def getConfig() {
    if (!config) {
        return new CustomerConfig() //the default settings
    } else {
        return config
    }
}

我遇到的问题是,当我返回默认设置时,GORM会将CustomerConfig实例保存到数据库中,因为在GORM看来它已经更改了。

事实上,我不想将其保存到数据库中,因为我希望能够控制客户的默认设置,并为客户进行更新,直到他们有一个明确保存的配置。

我还试图避免使用条件逻辑,如下所示:

代码语言:javascript
复制
def config = customer.config?:new CustomerConfig()

并将其封装在Customer域对象中。似乎我应该遵循一种不同的模式。欢迎任何建议。

谢谢,

考珀

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-23 03:13:18

IMHO,改变默认getter/setter的行为从来都不是一个好主意,因为它们是由GORM管理的。

你可以这样做

代码语言:javascript
复制
 class Customer {
   static transients = ['setting']

   public CustomerConfig getSetting(){
    return getConfig()?:new CustomerConfig()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9401235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档