我意识到这比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)
此后,我访问数据库并使用以下 DDL 修改了序列:
ALTER SEQUENCE MY_SEQ NOCACHE;
Run Code Online (Sandbox Code Playgroud)
我认为这是解决这个问题的最佳方案。有人看到这种方法的潜在问题吗?
谢谢大家!
归档时间: |
|
查看次数: |
6765 次 |
最近记录: |