org.hibernate.AssertionFailure: null id in xxx.xx.xx的异常处理

这是报的异常

org.hibernate.AssertionFailure: null id in lottery.domains.content.entity.UserIntegralAudit entry (don't flush the Session after an exception occurs)
	at org.hibernate.event.internal.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:80) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.event.internal.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:195) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:157) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:230) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:100) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1159) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175) ~[hibernate-core-4.2.13.Final.jar:4.2.13.Final]
	at ........

可能出现的问题

1 . 字段长度不足,但是hibernate报出的这个提示信息不对,不方便定位,我把数据库字段长度设置长点之后问题就解决了。

2 . 可能是id多加了约束条件,比如主键id多加了一个外键字段导致,可以把外键字段去掉,然后就可以保存了

3 . 可能是因为在查询语句中使用了数据库的关键字,改过来就行了。

4 . 数据库的字段和实体类属性不同,多个或少个字段

5 . 查询数据库时,实体类的字段在数据库没有时 , 需加上@Transient注解
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值