grails form -如何保存由自己的字段生成的复合id的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,i。returnReasonId被拒绝的值为空。如何修复它??

write validate:false

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")
}

最新更新