`
cobo85
  • 浏览: 115137 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • J2EE
阅读更多
前天遇到一个以前从没见过的怪异问题,无论用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!)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics