日期:2014-05-20  浏览次数:20566 次

Hibernate 中只查询对象中的某几个字段HQL语句该怎样写?
比如:
  我的对象:person:name,age,sax,....
  现在我只要name,age两个属性查询出来:该怎呀做?查询出的结果该怎样取出?


------解决方案--------------------
一样
Java code
            
            //查询多个属性,其集合元素是对象数组
            //数组元素的类型和对应的属性在实体类中的类型一致
            //数组的长度取决与select中属性的个数

            List persons= session.createQuery("select id, name from Person").list();
            for (Iterator iter=persons.iterator(); iter.hasNext();) {
                Object[] obj = (Object[])iter.next();
                System.out.println(obj[0] + "," + obj[1]);
            }

------解决方案--------------------
探讨
一样Java code//查询多个属性,其集合元素是对象数组//数组元素的类型和对应的属性在实体类中的类型一致//数组的长度取决与select中属性的个数
List persons= session.createQuery("select id, name from Person").list();for (Iterator iter=persons.iterator();¡­

------解决方案--------------------
看看能不能这样写
select new(name,age) form person
------解决方案--------------------
select new (注意,这里是对象的属性,所以你要看清楚大小写) from .......
------解决方案--------------------
select p.name,p.age from Person p这样就可以啊
------解决方案--------------------
select name,age from Person 
查询出来的是一个list集合,集合的元素是Object[]类型的,数组的第一个元素就对应name,第二个元素对应age,迭代取出来就行了,用强制转化 , String name = (String)object[0];