Можно ли явно установить идентификатор объекта домена в Grails Bootstrap.groovy (или где-либо еще, если на то пошло)?
Я пробовал следующее:
new Foo(id: 1234, name: "My Foo").save()
и:
def foo = new Foo()
foo.id = 1234
foo.name = "My Foo"
foo.save()
Но в обоих случаях, когда я распечатываю результаты Foo.list()
во время выполнения, я вижу, что моему объекту присвоен идентификатор 1 или любой следующий идентификатор в последовательности.
Изменить: это в Grails 1.0.3, и когда я запускаю свое приложение в «dev» со встроенной базой данных HSQL.
Изменить: chanwit предоставил один хороший решение ниже. Однако на самом деле я искал способ установить идентификатор, не меняя метод генерации идентификатора моего домена. Это в первую очередь для тестирования: я хотел бы иметь возможность устанавливать определенные вещи на известные значения идентификатора либо в моем тестовом бутстрапе, либо в setUp()
, но при этом иметь возможность использовать auto_increment или последовательность в производстве.