是否可以在 Grails 的 Bootstrap.groovy(或任何地方)中显式设置域对象的 id?
我尝试了以下方法:
new Foo(id: 1234, name: "My Foo").save()
和:
def foo = new Foo()
foo.id = 1234
foo.name = "My Foo"
foo.save()
但是在这两种情况下,当我在运行时打印出结果Foo.list()
时,我看到我的对象的 id 为 1,或者序列中的下一个 id 是什么。
编辑: 这是在 Grails 1.0.3 中,当我使用内置 HSQL 数据库在“开发”中运行我的应用程序时。
编辑:
chanwit 在下面提供了一个很好的解决方案。但是,我实际上是在寻找一种在不更改域的 id 生成方法的情况下设置 id 的方法。这主要用于测试:我希望能够在我的测试引导程序中将某些东西设置为已知的 id 值setUp()
,但仍然能够在生产中使用 auto_increment 或序列。