有一实体类中有几个Integer型数据,对应数据库中int型,怎样用hql语句查询出此类的数据;例如:
num_db表中:id   name(varchar)   a(int)   b(int) 
            3     name1           null     4
用:hql="select n.id from Num n where n.a is null"是可以查单列数据的,但如果想查询实体数据呢????
不想用上边的方法每一列都查一遍,请高手指教

解决方案 »

  1.   

    select n from Num n where n.a is null 就OK
      

  2.   

    不太明白你的需求,如果只是查询为null的话from Num n where n.a is null就行拉
      

  3.   

    重点在int型的数据那,查询条件是int型字段为null的记录;如果数据库中int型字段记录“零填充”,或者字段为string型、date型,则用你们说的方法可以,但是int对应为null的时候,查询报错,就相当于int a = null;这个肯定不行。
    待高手指教
      

  4.   

    hql 针对持久化对象,它用来取得对象 你的对象里的属性是int 所以不能为空!对象默认值为0
      

  5.   

    你可以把对象该为String 就可以那样写了!
      

  6.   

    hql 是符合JAVA 语言习惯的查询语言
    要查 就按照 FROM Num n WHERE n.a=null 来查
      

  7.   

    数据库里用 int 型,那你实体类里就用 Integer 而不是用 int 来封装数据不就OK了
    int a = null; 你知道这句会报错,
    那 Integer a = null;  肯定就不会报错喽
    实际使用,绝大多数都是用包装类来封装的,用基本数据类型应该很少了
      

  8.   

    重写hibernate的查询填充方法吧,如果那列查出来是null的话,就用三位运算符替换成0,这样就可以查到了
      

  9.   

    select * from tb where isnull(a,"1")=1用这个试试,应该可以
      

  10.   

    @Column(name = "isDelete", length = 4)
    private Integer isDelete;