hibernate - 让Oracle触发ID序列而不是Hibernate吗?

标签 hibernate grails

我有一个具有Oracle数据库的应用程序,其中每个表都有一个触发器,该触发器调用序列以获取该行的下一个ID。如何配置域,以便Hibernate在插入时不指定下一个ID,而仅让Oracle和触发器对其进行处理?

以前,我设置了域以使用序列生成器,这似乎可行。我不能在生产系统上使用它,因为DBA不允许我授予Grails序列的选择特权。这显然破坏了Hibernate的生成器。

最佳答案

这里有一个Hibernate论坛主题,它讨论了使用JDBC插入中的generatedKeys来检索id的自定义生成器:https://forum.hibernate.org/viewtopic.php?t=973262

如果该定制生成器对您有用,那么您应该可以通过以下方式使用它:

static mapping = {
    id generator:"jpl.hibernate.util.TriggerAssignedIdentityGenerator"
}

关于hibernate - 让Oracle触发ID序列而不是Hibernate吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401841/

相关文章:

authentication - Grails 3-使用密码的Spring Security身份验证

grails - 在GroovyShell中评估大型Groovy脚本

java - 不同表的 hql 请求

java - Hibernate + spring获取最新的lazy 1 to N属性值

Hibernate 4 + Spring 3.1 配置对象

java - Hibernate 搜索投影 - StaticAliasToBeanResultTransformer

java - 使用复合主键和注释 : 映射 ManyToMany

grails - Groovy PageRenderer无法呈现GSP

javascript - 使用 tablekit 对从 AJAX 方法返回的表进行排序

security - Grails 和运行时动态修改