dljd_052_hibernate_单表查询_投影查询

一、投影查询

package edu.aeon.hibernate.test;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import edu.aeon.aeonutils.hibernate.getsessionutil.GetSessionUtil;
import edu.aeon.beans.Student;
/**    
 * [说明]:投影查询:只查询名字和年龄这两个字段
 *         必须要有相应的构造器
 * @author aeon
 *
 */
public class TestQuery {
    @Test
    public  void testQueryRecordCount() {
        Session session=null;
        Transaction transaction=null;
        try {
            session = GetSessionUtil.getSession();
            transaction=session.getTransaction();
            transaction.begin();
            //这里的count(*)相当于count(id)
            String sql = "select new Student(stuName,stuAge) from Student";
            List<Student> userList = session.createQuery(sql).list();
            for (Student stu : userList) {
                System.out.println(stu);
            }
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            //事物的回滚操作
            transaction.rollback();
        }
    }
}

数据库信息截图:

  

执行结果截图:

  

只查出来了用户名和年龄两个字段吧!其它值都是默认显示值,因为我在Student类里面重写了equals方法,所以也显示出来了

  

 这里必须要注意、你查询那些字段、必须要有这些字段的相应构造器!比如上面就必须要有   public  Student(String stuName,int stuAge){}构造器。

猜你喜欢

转载自www.cnblogs.com/aeon/p/10106775.html