Идентификатор, присвоенный GORM Grails 2.3.5, не сохраняется, перезаписывается автоматически сгенерированным идентификатором

У меня есть класс как:

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

На основе документации для Hibernate и Grails id generator:'assigned' все, что мне нужно, чтобы иметь возможность установить идентификатор вручную. Однако каждый раз, когда я запускаю код, идентификатор перезаписывается GORM, хотя я вручную устанавливаю его перед вызовом метода .save(flush:true, failOnError:true). Когда я вывожу идентификатор из объекта до и после сохранения, я получаю следующее:

ID before save is: 12345645

ID after save is: 1

Я новичок в Grails, но на основании всего, что я прочитал, кажется, что я делаю то, что должен. Кто-нибудь может дать некоторое представление? Спасибо!

Мой следующий шаг — запустить приложение на Grails 2.3.4 на всякий случай.


person Lostlinkpr    schedule 15.02.2014    source источник


Ответы (1)


Свойство generator находится в блоке mapping, а не constraints:

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

static mapping = {
   id generator: 'assigned'
}
person Burt Beckwith    schedule 16.02.2014