我写了两个hql
1、
要查询一个表里的其中两个字段,多的不要
select name,sex from tableobject where id='1234'
但是hql是from tableobject where id='1234',这样就把所有的字段都查出来了,能不能只查两个
2,sum()函数我要计算结果的总数
select sum(name) from tableobject where id<'50000'如果hql写成
select sum(name) from tableobject where id<'50000'就会报错,因为这个是sql的写法,hql里怎么写? 

解决方案 »

  1.   

    我用 select sum(obj.name) from tableobject obj where id<'50000'
    或者select sum(obj) from tableobject obj where id<'50000'
    也是错误的
      

  2.   

    纠正一下,是把sum函数改成count函数
      

  3.   

    昨天学了一招
     select new Tableobject(t.name,t.sex )from tableobject as t where id='1234' 
    前提是你的pojo类(就是我写的Tableojbect)里必须有这个构造函数
      

  4.   

    第二问参考这里 
    http://docs.huihoo.com/hibernate/reference-v3_zh-cn/queryhql.html
      

  5.   

    1,能
    2,写select * from  tableobject where id <'50000'
    然后返回size
      

  6.   

    一、你在POJO里定义一个相应的构造函数,参数为你要查询的两个字段,然后select new Ta(t.a,t.b) from Ta t where t.id='1234'。二、你的写法没错,只要tableobject是你的POJO对象名。那条语句应该这样执行:session.createQuery(hqlStr).uniqueResult(),返回的是一个Object对象,你转换成Integer就行了。
      

  7.   

    1、select name,sex from tableobject where id='1234' 他返回的是一个数对象数组。取数据的时候转化为对象数组迭代。
    2、同一楼的。
      

  8.   

    你建立一个jdbc连接,用普通的sql来写,放回map或list返回就ok了