在hibernate中命名查询,想要查询全部字段可以,但要查询某两个字段就不行了,能否解决呢。
  <sql-query name="select_5">
        <![CDATA[select name,age from person  limit 3]]>
        <return alias="s" class="cn.itcast.bean.Person"/>
  </sql-query>下面是构造函数
package cn.itcast.bean;public class Person {

private Integer id;
private String name;
private Integer age;

public Person() {
}

public Person(String name,Integer age ) {
this.name=name;
this.age=age;
} //public Person(Integer id) {this.id = id;}
public Person(String name) {this.name = name;}
//public Person(Integer age) {this.age = age;}

public Integer getId() {return id;}
public void setId(Integer id) {this.id = id;} public String getName() {return name;}
public void setName(String name) {this.name = name;}

public Integer getage() {return age;}
public void setage(Integer age) {this.age = age;}
}

解决方案 »

  1.   

    select name,age from person  limit 3其中person最好是类名,首字母大写你既然全部可以查询出来的话,你在显示页面中控制下,把要显示的字段输出来不就可以了吗??
      

  2.   

    使用数组Object[],如下:
    SessionFactory sessionfactory = HSF.getSessionFactory();
    Session session = sessionfactory.openSession();
        Query query = session.createQuery("select id,name, pass from Haha");
    List<Object[]> list = query.list();
    for (Object[] user : list) {

    System.out.print(user[0]);

    System.out.print(user[1]);

    System.out.print(user[2]);
    System.out.println(); }
    session.close();
    sessionfactory.close();
      

  3.   

    谢谢,这个方法我知道,但这个方法实际使用起来真是麻烦哦,想来想去还是喜欢SQL多一点。谁能告诉我,在xml里,我该怎么多呢
      

  4.   

    查询对象某几个属性,像楼上说的一样,用Object数组接收即可: 
    SessionFactory sessionfactory = HibernateSessionFactory.getSessionFactory(); 
    Session session = sessionfactory.openSession(); 
        Query query = session.createQuery("select p.age,p.name from Person p"); //注意HQL查询是查询对象,所以Person是大写开头的
    List <Object[]> list = query.list(); 
    for (Object[] attribute: list) { 
         System.out.print(attribute[0]); 
         System.out.print(attribute[1]); 
         System.out.print(attribute[2]); 
    }
      

  5.   

    谢谢,这个方法我知道,但这个方法实际使用起来真是麻烦哦,如果是做大型的项目的话,这样的查询方法显然是行不通的,想来想去还是喜欢在XML里写SQL,或者是存储过程好一点。 谁能告诉我,在xml里,我该怎么多呢
      

  6.   

    爱用sql,还非要在hibernate里用,无语了。