Ist es möglich, explizit die id eines Domain-Objekts in Grails' Bootstrap.groovy (oder irgendwo, für diese Angelegenheit) zu setzen?
Ich habe Folgendes ausprobiert:
new Foo(id: 1234, name: "My Foo").save()
und:
def foo = new Foo()
foo.id = 1234
foo.name = "My Foo"
foo.save()
Aber in beiden Fällen, wenn ich die Ergebnisse ausdrucke Foo.list()
zur Laufzeit sehe ich, dass mein Objekt die ID 1 erhalten hat, oder was auch immer die nächste ID in der Sequenz ist.
Bearbeiten: Dies ist in Grails 1.0.3, und wenn ich meine Anwendung in "Dev" mit der eingebauten HSQL-Datenbank ausgeführt wird.
Bearbeiten: chanwit hat bereitgestellt eine gute Lösung unten . Allerdings war ich eigentlich auf der Suche nach einem Weg, um die id ohne Änderung meiner Domäne id Generation Methode festgelegt. Dies ist in erster Linie zum Testen: Ich würde gerne in der Lage sein, bestimmte Dinge auf bekannte id-Werte zu setzen, entweder in meinem Test-Bootstrap oder setUp()
aber dennoch in der Lage sein, auto_increment oder eine Sequenz in der Produktion zu verwenden.