2012-02-22 69 views
1

getter方法返回的默認實例我有兩個域對象:從我不想堅持

Customer 
CustomerConfig 

客戶有CustomerConfig 1-1關聯。對於沒有顯式保存CustomerConfig的客戶,默認設置了默認的CustomerConfig。

def getConfig() { 
    if (!config) { 
     return new CustomerConfig() //the default settings 
    } else { 
     return config 
    } 
} 

我遇到的問題是,當我返回默認設置GORM保存CustomerConfig實例的數據庫,因爲它似乎格姆,它已經改變了。

事實上,我不想將它保存到數據庫,因爲我希望能夠控制客戶的默認設置併爲客戶進行更新,直到他們有明確保存的配置。

我也正在嘗試避免使用條件邏輯如下:

def config = customer.config?:new CustomerConfig() 

而且在客戶域對象封裝它。似乎我應該遵循不同的模式。歡迎任何建議。

感謝,

考珀

回答

1

恕我直言,這是永遠不會改變默認的getter/setter的行爲,那些是由GORM管理是個好主意。

你可以做一些這

class Customer { 
    static transients = ['setting'] 

    public CustomerConfig getSetting(){ 
    return getConfig()?:new CustomerConfig() 
} 
+0

感謝@Saurabh等。簡單的解決方法。 – 2012-02-22 20:56:15