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データベースを使用して「dev」でアプリケーションを実行しているときです。
編集:
chanwit は以下の 1 つの優れたソリューションを提供しています。ただし、実際には、ドメインの ID 生成方法を変更せずに ID を設定する方法を探していました。これは主にテスト用です。テスト ブートストラップまたはsetUp()
で特定のものを既知の id 値に設定できるようにしたいのですが、本番環境では auto_increment またはシーケンスを使用できるようにしたいと考えています。