我有一个具有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/