如何修复圣杯中的"identifier of an instance of X was altered from 2 to null"



我在grails中有两个域类。一个叫书,另一个叫作者。,我的图书课是这样的

class Book {
   String name
   static constraints = {
      name nullable:false
   }
}

我的作者类:

class Author {
   String name
   Book book1
   Book book2
   Book book3
   static constraints = {
      name nullable:false
      book1 nullable:false
      book2 nullable:true
      book3 nullable:true
   }
}

如果我用两本书创建一个作者,然后将其编辑为一本书,我会出现以下错误:

identifier of an instance of com.apps.Book was altered from 2 to null

如何修复?我使用的是grails 2.1.1和sql server 2008。

在更新方法中,尝试在authorInstance.properties = params行之前将book2和book3属性设置为null,如下所示:

book2 = null
book3 = null
authorInstance.properties = params

尝试在Author类:中使用"hasOne"

class Author {
   String name
   Book book1, book2, book3
   static hasOne = [ book1:Book, book2:Book, book3:Book ]
}

最新更新