1. 程式人生 > >dljd_052_hibernate_單表查詢_投影查詢

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){}構造器。