Hibernate projectionList方法:建立多個投影列

2020-07-16 10:04:57
projectionList 方法用於建立多個投影列,每個投影列由該方法返回的 ProjectionList 物件的 add 方法新增。add 方法的引數為 Projections 類的相關方法的返回值。

語法:

projectionList()


返回值:ProjectionList 類的物件。ProjectionList 類為 Projection 類的子類。

範例1

查詢資料表中的全部使用者名稱,關鍵程式碼如下:
Criteria criteria = session.createCriteria(UserForm.class);  //建立Criteria物件
criteria.setProjection(Projections.projectionList()
                                                 .add(Projections.property("username")));  //建立投影列
list = criteria.list();  //執行查詢語句獲取查詢結果集
Iterator it = list.iterator();  //獲取查詢疊代器
while(it.hasNext()){  //迴圈遍歷疊代器
  System.out.println("使用者名稱:"+it.next());  //輸出查詢結果
}

範例2

在應用 projectionList 方法用於建立多個投影列時,可以通過呼叫多個 add 方法設定多個投影列,例如下面的程式碼:
Criteria criteria = session.createCriteria(UserForm.class);  //建立Criteria物件
criteria.setProjection(Projections.projectionList()
                       .add(Projections.property("username"))
                       .add(Projections.property("pwd"))  //建立多個投影列
                      );
List list = criteria.list();  //獲取查詢結果集
Iterator it = list.iterator();  //獲取查詢疊代器
while(it.hasNext()){  //迴圈遍歷疊代器
  Object[] o = (Object[])it.next();  //獲取疊代器中資料資訊
  System.out.println("使用者名稱:"+o[0]+"密碼:"+o[1]);
}