dljd_052_hibernate_單表查詢_投影查詢
阿新 • • 發佈:2018-12-12
一、投影查詢
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){}構造器。