原文:org.hibernate.AssertionFailure: null id in xxx entry (don't flush the Session after an exception occurs)

网上找了很久,发现造成原因有很多种,后来终于发现了端倪 看提示是发生了异常,查看业务代码,发现有这个逻辑:先插入记录,如果有唯一键约束异常 并发造成 ,catch时查询已存在的记录,查询的时候就报了此错误。 原因:异常后,再次查询的时候触发了autoFlush,先前保存失败的记录会再次保存,导致抛出如标题所述异常。 解决方法:数据库是mysql,改为采用 insert ignore into语句 ...

2018-01-05 16:43 0 1351 推荐指数:

查看详情

null id in entry (don't flush the Session after an exception occurs)

null id in entry (don't flush the Session after an exception occurs) 遇到这个异常实属不小心所致,最初看到异出的错误信息时我误认为是主键为空所致。一着急竟然把entry当成了entity理解,真是让人笑话 ...

Wed Nov 05 01:32:00 CST 2014 0 2670
Hibernate session.flush() 使用

session flush在commit之前默认都会执行, 也可以手动执行,他主要做了两件事: 1) 清理缓存。 2) 执行SQL。 flush: Session 按照缓存中对象属性变化来同步更新数据库。 默认情况下,Session 会在以下情况下调用 flush: 1. 直接调用 ...

Wed Jul 05 20:04:00 CST 2017 0 6277
There is no session with id XXX

系统采用 shiro + redis + spring来做的权限控制系统。 登录时报 there is no session with XXX 跟踪断点发现,系统查询session时,查不到redis中的sessionID。 但是我通过redis客户端 ...

Tue Sep 19 00:36:00 CST 2017 1 2309
org.hibernate.exception.ConstraintViolationException

org.hibernate.exception.ConstraintViolationException 今天遇到这个错误,网上查了下,大多说是有必填字段没有填,搞了很久没搞定,最后发现不是因为这个问题,而是因为字段设置了唯一值,如果表中已存在此记录,再插入则报此错误 ...

Thu Jul 12 17:27:00 CST 2012 0 6930
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM