Grails 从getter方法返回我不知道的默认实例';我不想坚持
我有两个域对象:Grails 从getter方法返回我不知道的默认实例';我不想坚持,grails,groovy,gorm,Grails,Groovy,Gorm,我有两个域对象: Customer CustomerConfig Customer与CustomerConfig有1-1关联。对于没有显式保存CustomerConfig的客户,有一个默认CustomerConfig和默认设置,例如: def getConfig() { if (!config) { return new CustomerConfig() //the default settings } else { return config
Customer
CustomerConfig
Customer与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 domain对象中。看来我应该遵循一种不同的模式。欢迎任何建议
谢谢
cowper我想,改变默认getter/setter的行为从来都不是一个好主意,因为它们是由GORM管理的 你可以这样做
class Customer {
static transients = ['setting']
public CustomerConfig getSetting(){
return getConfig()?:new CustomerConfig()
}
恕我直言,改变默认getter/setter的行为从来都不是一个好主意,因为它们是由GORM管理的 你可以这样做
class Customer {
static transients = ['setting']
public CustomerConfig getSetting(){
return getConfig()?:new CustomerConfig()
}