GORM Grails 2.3.5分配的id不是持久化的,由自动生成的id覆盖

时间:2014-02-15 23:15:24

标签: grails gorm grails-2.3

我有一个班级:

class Facebook {

   long id
   String username
   String email
   String first_name
   String last_name
   Date birthday
   String gender
   String link
   static hasMany = [friends: FacebookFriend]

   static constraints = {
      id generator:'assigned'
      birthday blank:false, nullable:true
      gender blank:false, nullable:true
   }
}

根据HibernateGrails id generator:'assigned'的文档,我需要手动设置ID。但是,每次运行代码时,ID都会被GORM覆盖,即使我在调用.save(flush:true, failOnError:true)方法之前手动设置它。当我在保存之前和之后从对象输出id时,这就是我得到的:

ID before save is: 12345645

ID after save is: 1

我是Grails的新手,但基于我读过的所有内容,似乎我正在做我应该做的事情。谁能提供一些见解?谢谢!

我的下一步是在Grails 2.3.4上运行应用程序以防万一。

1 个答案:

答案 0 :(得分:4)

generator属性位于mapping区块,而不是constraints

static constraints = {
   birthday blank:false, nullable:true
   gender blank:false, nullable:true
}

static mapping = {
   id generator: 'assigned'
}