Oracle 11g的Grails序列生成

dbr*_*rin 5 grails hibernate

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

我的域对象序列声明(对于2个对象):

static mapping = {
        id generator:'sequence', params:[sequence:'MY_SEQ']  
    } 
Run Code Online (Sandbox Code Playgroud)

dbr*_*rin 4

此后,我访问数据库并使用以下 DDL 修改了序列:

ALTER SEQUENCE MY_SEQ NOCACHE;
Run Code Online (Sandbox Code Playgroud)

我认为这是解决这个问题的最佳方案。有人看到这种方法的潜在问题吗?

谢谢大家!