database - 并发 INSERT 抛出 SQLException 错误:重复键值违反唯一约束 Hibernate
问题描述
场景:两个用户尝试同时对数据库执行“INSERT”查询,但有时会抛出 SQLException: 错误:重复键值违反唯一约束...详细信息:键 (id)=(1580) 已存在。 实体的 id 生成类型是“Identity”,因此当调用第二个“INSERT”时,id 应该加一,但可能并发执行不允许这样做。有什么解决办法吗?我正在使用 JPA 和方法jpaApi.withTransaction(),休眠,我试图在保存后执行手动刷新,我试图将生成 ID 的类型从“身份”更改为“序列”。问题出在“INSERT”而不是“UPDATE”上。
解决方案
推荐阅读
- java - hibernate 验证器抛出异常 ValidationException: HV000028 for @Past annotation
- python - Jinja2.exceptions.TemplateSyntaxError:遇到未知标签“信息”
- machine-learning - 使用 Pytorch 预测舞蹈帧
- r - 如何使用 R 中的文本函数将方程添加到我的绘图中?
- json - 如何以模块化形式在 Terraform 中使用 s3 生命周期规则,即在单独的 JSON 中引用?
- android - 如何从 kotlin 中的 volley response liatner 在 recyclerview 中设置数据?
- django - 如何从 django 中的多个表中获取数据
- rust - Actix TCP 客户端实现的编译问题
- sql - 进行 1 对 1 多字段 SQL 联接,其中只有一些值匹配
- c# - ASP.NET,Entity Framework Code First 多对多自引用列表