一尘不染

Oracle 11g的Grails序列生成

hibernate

我意识到这比Grails更像是一个hibernate的问题。在负载平衡(2个节点)的环境中,我看到对象的ID跳跃了很多。即使没有重新启动应用程序服务器,我也看到数字跳过了10个有时是20个数字。我怀疑hibernate会话正在缓存一个序列值块。
有没有办法通过grails 1.3.7控制此行为? 基本上,我每次服务器都需要从数据库中提取nextval时,我都可以。

我的域对象序列声明(与2个对象相同):

static mapping = {
        id generator:'sequence', params:[sequence:'MY_SEQ']  
    }

阅读 232

收藏
2020-06-20

共1个答案

一尘不染

从那以后,我进入数据库并使用以下DDL修改了Sequence:

ALTER SEQUENCE MY_SEQ NOCACHE;

我认为这是解决此问题的最佳方法。有谁看到这种方法的潜在问题?

谢谢大家!

2020-06-20