当前位置:  开发笔记 > 编程语言 > 正文

在Bootstrap.groovy中设置Grails域ID

如何解决《在Bootstrap.groovy中设置Grails域ID》经验,为你挑选了1个好方法。

是否可以在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()在运行时打印出结果时,我看到我的对象被赋予了1的id,或者序列中的下一个id.

编辑: 这是在Grails 1.0.3中,当我使用内置的HSQL数据库在'dev'中运行我的应用程序时.

编辑: chanwit提供了一个很好的解决方案.但是,我实际上正在寻找一种方法来设置id而不更改我的域的id生成方法.这主要用于测试:我希望能够在我的测试引导程序中将某些内容设置为已知的id值setUp(),但仍然能够在生产中使用auto_increment或序列.



1> chanwit..:

是的,手动GORM映射:

class Foo {
  String name
  static mapping = {
    id generator:'assigned'
  }
}

并且你的第二个片段(不是第一个片段)将完成这项工作(在通过构造函数传递时不会分配Id).

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有