首页 > 解决方案 > 并发 INSERT 抛出 SQLException 错误:重复键值违反唯一约束 Hibernate

问题描述

场景:两个用户尝试同时对数据库执行“INSERT”查询,但有时会抛出 SQLException: 错误:重复键值违反唯一约束...详细信息:键 (id)=(1580) 已存在。 实体的 id 生成类型是“Identity”,因此当调用第二个“INSERT”时,id 应该加一,但可能并发执行不允许这样做。有什么解决办法吗?我正在使用 JPA 和方法jpaApi.withTransaction(),休眠,我试图在保存后执行手动刷新,我试图将生成 ID 的类型从“身份”更改为“序列”。问题出在“INSERT”而不是“UPDATE”上。

标签: databasehibernatejpaconcurrencyinsert

解决方案


推荐阅读