2013-01-07 32 views
1

這是我的域類如何使用自己的字段製作複合標識來保存GORM類?

class ReturnReason implements Serializable { 

       Long returnReasonId 
       Long languageId 
       String name 

       int hashCode() { 
        def builder = new HashCodeBuilder() 
        builder.append returnReasonId 
        builder.append languageId 
        builder.toHashCode() 
       } 

       boolean equals(other) { 
        if (other == null) return false 
        def builder = new EqualsBuilder() 
        builder.append returnReasonId, other.returnReasonId 
        builder.append languageId, other.languageId 
        builder.isEquals() 
       } 

       static mapping = { 
        id composite: ["returnReasonId", "languageId"] 
        version false 
       } 

       static constraints = { 
        name maxSize: 128 
       } 
      } 

這是我的控制器代碼來保存我的領域類。

def save() { 
    ReturnReason returnReasonInstance = new ReturnReason(params) 
    returnReasonInstance.languageId = 1 
    if (!returnReasonInstance.save(flush: true)) { 
     render(view: "create", model: [returnReasonInstance: returnReasonInstance]) 
    } 
    redirect(action: "list") 
} 

雖然試圖在我的控制器,以節省比存在returnReasonId一個錯誤,即returnReasonId拒絕null值。如何解決它。

回答

0

寫驗證:假的保存操作

def save() { 
    ReturnStatus returnStatusInstance = new ReturnStatus(params) 
    returnStatusInstance.languageId = 1 
    if (!returnStatusInstance.save(validate: false, flush: true)) { 
     render(view: "create", model: [returnStatusInstance: returnStatusInstance]) 
    } 
    redirect(action: "list") 
} 
相關問題