org.hibernate.AssertionFailure: null id don‘t flu

严重: Servlet.service() for servlet default threw exception
org.hibernate.AssertionFailure: null id in com.iprecare.entity.Inventroyrecord entry (don‘t flush the Session after an exception occurs)
    at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:78)
    at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:187)
    at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:143)
    at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
    at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
    at com.iprecare.filter.TransactionFilter.doFilter(TransactionFilter.java:27)

解决方法:1.首先排除是否是主键的问题,不要一看到null Id  就想到了是主键的问题,这样我们很容易的钻进一个死胡同里。把其他的字段都注释掉。直接插入一个对象,看是否会同样的错,如果报同样的错,说明的确是主键问题。如果插入成功,说明主键并非有问题。
2.然后一个字段一字段逐一排除,这样问题就解决了。我的问题就是这样解决了。

这个方法很有效 一般主要是由于xml配置文件里的字段类型与数据库字段类型不一致导致的

时间: 2024-09-26 23:55:28

org.hibernate.AssertionFailure: null id don‘t flu的相关文章

org.hibernate.AssertionFailure: null id in com.you.model.User entry (don't flush the Session after a

1.错误描述 org.hibernate.AssertionFailure: null id in com.you.model.User entry (don't flush the Session after an exception occurs) at org.hibernate.event.internal.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:77) at org.hib

org.hibernate.AssertionFailure: null id in xxx.xx.xx的问题

今日在开发时遇到一个比较奇怪的问题,保存时报这个异常: Java代码   org.hibernate.AssertionFailure: null id in com.aa.TShoucang null id,这个是什么回事呢?数据库是自动增长了,hibernate映射文件也一切正常的了,看了后台也打印出了insert into ....这个的语句了,但为什么就是插入不成功呢? 本着知之为知之,不知google之的精神,google了一下,都是说数据库与映射文件不对应,数据库设置了不为null,

org.hibernate.AssertionFailure: null id 错误

对象属性有Blob类型: 而Blob需在输入流中读取: InputStream in = new FileInputStream(url.getFile()); Blob bookPic = lobHelper.createBlob(in, in.available()); book.setBookPic(bookPic); book2.setBookPic(bookPic); 如对象bookPic第二次使用的时候以无法再从in 中读取信息,因此报错 改进方法: 重新获取一次in 或使用 in.

java错误:org.hibernate.AssertionFailure: null id in xxx.xx.xx的问题

经常遇到这种问题,在添加数据的时候: 看到这种情况,你是不是容易想到配置问题?缓存问题?主键问题? 不过一般只要不是新项目,而且主键已经配置了自动增长,那么就是其它问题了. 以下就是我遇到过的比较坑人的现象,但往往不会想到这方面,浪费不少时间: 1.做添加功能时,因为新加了个字段,结果数据库的字段忘了添加,然后就报这错: 2.数据库字段和代码中配置类型没有匹配(比如价格在数据库中是个double,代码中写了个String):

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理解,真是让人笑话^_^. 其实个该异常信息是在提示我们没有为数据中的非空字段设置值.呵呵!看,够笨的吧.怎么会忘记为非空字段设置值呢?当然一般我们是不会犯这样的错.但是需要说的一点是,在数据的设计中比如SqlServer,我们为某个非空字段设置

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

最近在学习基于ssh的注解的系统,然后在实现往数据库增加记录时可以增加第一个,第二个就报错,在网上查了很多资料,大多都是 该异常信息是在提示我们没有为数据中的非空字段设置值. 然后就一直没有明白 明明都赋值了 为什么还会这样 ,然后我把unique字段和非空字段去掉即//@Column(name = "zh", unique = true, nullable = false)就好了. null id in entry (don't flush the Session after an

[hibernate]org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter

org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.wa.dataprocess.query.model.AcrossDeptApply 包装类和基本数据类型的区别, 包装类默认为null,基本类型为0. public class AcrossDeptApply implements Serializable private Str

org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type sette

org.hibernate.PropertyAccessException: Null value was assigned to a property <property column="sex"  name="sex"  type="java.lang.Boolean"/> JavaBean修改:private Boolean sex; 原因:数据库字段值为NULL,int 类型不能赋值为NULL,只能为0,但有些实际应用中,如学

org.hibernate.PropertyAccessException:Null value was assigned to a property of primitive type setter

在项目开发中遇到下面的异常:org.hibernate.PropertyAccessException:Null value was assigned to a property of primitive type setter ofcom.atguigu.surveypark.model.Page.orderno 这个异常的解释是:      Null值被分配给了设置为基本类型的Page类里的orderno属性.也就是说Null是不能分配给基本数据类型的.解决办法:手动给数据库中是Null值的