我有两个域对象:
Customer
CustomerConfig
客户与CustomerConfig具有1-1关联。对于没有显式保存的CustomerConfig的客户,存在具有默认设置的默认CustomerConfig,例如
def getConfig() {
if (!config) {
return new CustomerConfig() //the default settings
} else {
return config
}
}
我遇到的问题是,当我返回默认设置时,GORM会将CustomerConfig实例保存到数据库中,因为它在GORM中似乎已更改。
实际上,我不想将其保存到数据库,因为我希望能够控制客户的默认设置并为客户进行更新,直到他们拥有明确保存的配置。
我也尝试避免使用如下条件逻辑:
def config = customer.config?:new CustomerConfig()
并将其封装在Customer域对象中。似乎我应该遵循一种不同的模式。欢迎任何建议。
谢谢,
缩
最佳答案
恕我直言,更改默认getter / setter的行为绝不是一个好主意,因为它们由GORM管理。
你可以做这样的事情
class Customer {
static transients = ['setting']
public CustomerConfig getSetting(){
return getConfig()?:new CustomerConfig()
}
关于grails - 从我不想持久化的getter方法返回默认实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9401235/