怎么让HQL的select子句返回你想要的类型

如何让HQL的select子句返回你想要的类型
通过这几天对hql的学习 发现个有趣的事情  返回select子句 想要的类型

首先顶一个实体类
public class Person{
        private Integer id;
        private String  name;
        private String  password;


   //关键是构造方法   你想返回什么样的东东,就定义什么样的东西。
   public Person(){
         //默认的
     }
  public Person(Integer id,String name){
        //只要id 和 name的
         this.id = id;
         this.name = name;
    }
     //get  and   set .....
}

//然后就是写查询hql语句了

//如果你只想要id和name  那么就这样写

select  new Person(p.id , p.name)  from Person p; 
//然后接收就可以用List<Person> 了。

猛一看很是鸡肋,但是在我用在group by里时  就用到了  要不然 hibernate默认是给你返回Object[] 数组的。当然你也可以把它一List的方式返回
select  new List(p.id , p.name)  from Person p;  //就可以了

详细请看《hibernate_reference.pdf》我这几天 就看它又仔细的学习了hql查询。。。