grails / hibernate:如何在ID列上禁用自动增量?

时间:2015-01-08 11:11:30

标签: hibernate grails gorm

默认情况下,当您在grails中创建域对象时,它会添加“id”列并将其设置为在DB中自动递增。

我想在创建/保存对象时提供id参数,而不是使用任何类型的generate(它用于少量静态数据,我希望将ID固定为我给出的值)。

我想要其他好处,例如能够使用正确的ID在内存中创建一个对象,而不必从DB中读取它,然后使该对象与另一个对象成为“包含”类型的关系,如果这是有意义的。

Grails有id列的文档,但没有说如何禁用自动增量并允许将ID传递给域对象构造函数:

http://grails.org/doc/2.1.0/ref/Database%20Mapping/id.html

1 个答案:

答案 0 :(得分:5)

查看列的映射。根据{{​​3}},您可以使用assigned这样:

static mapping = {
    id generator: 'assigned'
}

根据hibernate文档assigned的行为如下:

  

让应用程序在save()之前为对象分配一个标识符   叫做。如果没有元素,这是默认策略   指定。