org.hibernate.AssertionFailure: null id in xxx entry (don't flush the Session after an exception occurs)
2024-10-21 07:55:06
网上找了很久,发现造成原因有很多种,后来终于发现了端倪;看提示是发生了异常,查看业务代码,发现有这个逻辑:先插入记录,如果有唯一键约束异常(并发造成),catch时查询已存在的记录,查询的时候就报了此错误。
原因:异常后,再次查询的时候触发了autoFlush,先前保存失败的记录会再次保存,导致抛出如标题所述异常。
解决方法:数据库是mysql,改为采用 insert ignore into语句进行插入
当然有很多处理方法,就不赘述了
最新文章
- 微软开源全新的文档生成工具DocFX
- 修改git的远程仓库命令
- 使用dom4j读取xml连接数据库与之单例模式
- svn比对
- korn shell
- 常用数据库 JDBC URL 格式
- HTML的窗口分帧
- hdu 5203
- [SQL]SQL语言入门级教材_跟我学SQL(六)
- shell脚本实例一,移动文件夹中大于2000B的文件到另一个文件夹
- 数据和C
- .net EF 事物 订单流水号的生成 (一)
- 【 js 基础 】【 源码学习 】backbone 源码阅读(二)
- echo 与 printf的区别与联系
- GlusterFS
- Go基础系列:简单数据类型
- LeetCode算法题-Contains Duplicate(Java实现)
- Vue中computed,methods 和watch
- 用到临时表空间的几种SQL
- Delphi 初始化的顺序