默认情况下,当您在grails中创建域对象时,它会添加“id”列并将其设置为在DB中自动递增。
我想在创建/保存对象时提供id参数,而不是使用任何类型的generate(它用于少量静态数据,我希望将ID固定为我给出的值)。
我想要其他好处,例如能够使用正确的ID在内存中创建一个对象,而不必从DB中读取它,然后使该对象与另一个对象成为“包含”类型的关系,如果这是有意义的。
Grails有id列的文档,但没有说如何禁用自动增量并允许将ID传递给域对象构造函数:
答案 0 :(得分:5)
查看列的映射。根据{{3}},您可以使用assigned
这样:
static mapping = {
id generator: 'assigned'
}
根据hibernate文档assigned
的行为如下:
让应用程序在save()之前为对象分配一个标识符 叫做。如果没有元素,这是默认策略 指定。