Hibernate中的唯一约束违例异常

时间:2012-05-09 06:23:50

标签: hibernate

两个或更多用户试图在Hibernate中插入表获取唯一约束违例异常。如何处理任何人都可以帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果要在具有唯一索引或约束的列中插入值,并且此列的插入值已存在于另一行中,则始终显示此错误。这可能是多线程环境中并发访问的问题。

根据问题的根源,有一些策略可以解决它:
- 使用生成器(序列或类似)生成唯一ID。 Hibernate可以帮助您使用<generator>标记内的<id>标记 - 使用<version>标记以避免同时修改同一实体
- 编写一个生成唯一值的方法
- 使用Java synchronized语句同步部分代码 - 使用无状态会话,并在异常重试后插入新值
- 纠正代码中的逻辑错误
- 还有一些......

相关问题