我意识到这比Grails更像是一个hibernate的问题。在负载平衡(2个节点)的环境中,我看到对象的ID跳跃了很多。即使没有重新启动应用程序服务器,我也看到数字跳过了10个有时是20个数字。我怀疑hibernate会话正在缓存一个序列值块。 有没有办法通过grails 1.3.7控制此行为? 基本上,我每次服务器都需要从数据库中提取nextval时,我都可以。
我的域对象序列声明(与2个对象相同):
static mapping = { id generator:'sequence', params:[sequence:'MY_SEQ'] }
从那以后,我进入数据库并使用以下DDL修改了Sequence:
ALTER SEQUENCE MY_SEQ NOCACHE;
我认为这是解决此问题的最佳方法。有谁看到这种方法的潜在问题?
谢谢大家!