hibernate乐观锁值引发的查询异常

前天遇到一个以前从没见过的怪异问题,无论用hibernate的那种查询方法都无法执行一个单表查询(最后排查出其他表关联了此表,刚开始一直以为是一个单独的表),在执行查询前就开始抛出空值异常(还没有产生SQL语句),异常如下:

java.lang.NullPointerException
at org.hibernate.type.LongType.next(LongType.java:56)
at org.hibernate.engine.Versioning.increment(Versioning.java:25)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getNextVersion(DefaultFlushEntityEventListener.java:353)
at org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:243)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:114)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
.....

百思不得其解....最后还是czx566兄,贴出一个地址进去翻阅总算找到答案,再次表示感谢 !详见(http://www.iteye.com/topic/310997)
总结:引起此类问题的原因一般存在于hibernate把查询转换为HQL语句的时候,转换中出了异常,引起异常大部分应该是由于类型不匹配引起,如果传的查询参数和查询用法都对,并且此表的数据也没问题,那么引起异常的数据一定在其他关联表里面!上面的异常就是因为在另一张表里面存在一个乐观锁的字段,此字段恰好为null而乐观锁声明的是int结果在进行转换操作的时候就会出现null值异常。(乐观锁字段在建表的时候一定要给个默认值,千万别出现null!)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值