尝试从postgreSQL获取数据时的OptimisticLockException

时间:2009-03-12 18:31:29

标签: java hibernate postgresql jpa jboss

我们正在开发一个每秒有多个请求的WebSite .-

我们当前的环境是JavaEE,JBoss 4.2.3,Struts2 for MVC,JPA,Hibernate为ORM,Postgres为DB .-

这就是场景:每当一个请求到达任何页面时,某些操作会检查数据库中的信息以填充所请求的页面(该信息由几个实体组成,其中一些实体具有集合映射,一些是懒惰的,一些急于);它一切正常,直到我们收到几个(不多... 2是足够的XD)并发请求,然后hibernate在获取该信息时抛出“OptimisticLockException”。

最有趣的是我们只阅读信息!!从不写!!

也许我们忽略了某些东西或类似的东西......任何帮助都会受到赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:3)

也许你的交易控制有问题。如果你在视图中使用open-session,请确保将事务设置为只读,否则如果你执行obj.setXX()它会引发更改,而hibernate将尝试更新表。

查看交易隔离策略的配置。

Finnaly,确保正确实现版本属性及其映射;和equals和hashcode方法(特别是在使用集合时)。