最近出现了一个很怪的问题,hibernate在执行hql语句的时候,例如“from A as bb where bb.entId='123456'”
当给 entId 传值的时候,若entId ='123456'就可以正常查询;而换成别的entId的时候就会报空指针。
我的疑虑:(1)如果hql语句有误的话,那为何entId ='123456'可以查找到数据;
          (2)可为什么再换成另外一个id号就不对了呢?
               这条数据在数据库中单独查询正确,但就是执行hql语句的时候报空指针。

解决方案 »

  1.   

    可以用数据跟踪器(或者debug),仔细看看在执行的时候那一句sql语句有啥问题。>可为什么再换成另外一个id号就不对了呢?这个你确定在数据库中是存在的?还有就是分析下这个条数据有没有什么特殊的地方。
      

  2.   

    就是同样的一个sql语句,无非就是两次传入参数的值不一样,输入“123456”就能查出结果,输入“123458”就报空指针的错误。
      

  3.   

    thrown exception,unwinding now org.apache.cxf.interceptor.Fault
    Caused by: java.lang.NullPointerException
    语句一点特殊性都没有"from A as bb where bb.entId='123456'"
      

  4.   

    你还是DEBUG下吧,一行一行的注意你的HQL的变化
      

  5.   

    不是查询结果为空,而是查完hql语句报空指针。
      

  6.   

    debug看一下,哪里是null就行了!
      

  7.   


    数据库里面有entId='123456'的数据  所以不会报空指针异常数据库里面没有entId='123458' 所以你的查询结果是null,在你的程序中用这个null时就抛了空指针异常。
      

  8.   

    数据库里有entId='123456'的数据 所以不会报空指针异常数据库里没有entId='123458'的数据  所以你的查询结果是null,