我有两个域对象:
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域对象中。似乎我应该遵循一种不同的模式。欢迎任何建议。
谢谢,
考珀
发布于 2012-02-23 03:13:18
IMHO,改变默认getter/setter的行为从来都不是一个好主意,因为它们是由GORM管理的。
你可以这样做
class Customer {
static transients = ['setting']
public CustomerConfig getSetting(){
return getConfig()?:new CustomerConfig()
}https://stackoverflow.com/questions/9401235
复制相似问题