当我将 hsqldb 与 grails 一起使用时,似乎每个域类都有自己的 id 自动增量计数器。当我创建 a 类型的对象时,它的 ID=1。当我创建 b 类型的对象时,它的 ID=1。当我再次创建 a 类型的对象时,它的 ID=2。
这就是我期望的行为。
当我使用 Oracle 数据库时,似乎所有域类的所有 ID 都只有一个全局计数器。当我创建 a 类型的对象时,它的 ID=1。当我创建 b 类型的对象时,它的 ID=2。当我再次创建 a 类型的对象时,它的 ID=3。
如何更改此设置?
最佳答案
Grails 使用 hibernate,默认情况下 hibernate 仅使用一个序列来生成所有 id。如果每个表需要一个序列,您可以编辑 Config.groovy。添加以下行:
grails.gorm.default.mapping = {id generator:'identity'}
关于oracle - Grails 与 Oracle-DB : seems to have only one global counter for IDs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636124/