Hibernate中用hql查詢部分字段

網上copy的一段講解:

   

在hibernate中,用hql語句查詢實體類,採用list方法的返回結果爲一個List,該List中封裝的對象分爲以下三種情況:

1.查詢全部字段的情況下,如"from 實體類",list中封裝的對象爲實體類本身,各屬性都將得到填充。

2.只查詢一個字段,默認情況下,list中封裝的是Object對象。

3.查詢兩個或兩個以上的字段,默認情況下,list中封裝的是Object[],長度與所查詢的字段數一致。

  對於後兩種情況,用標籤遍歷時不太方便,因爲無法直接轉換成實體類的對象。比較簡單的解決方法是:

在hql中使用 select new 包名.類名(屬性1,屬性2……) from 實體類,同時在實體類中添加帶參的構造方法,參數的個數和順序與(屬性1,屬性2……) 保持一致,這樣我們得到的list中存放的依然是實體類的對象,所查詢到的屬性得到了填充,使用起來更爲方便。

------------------------------------------------------------------------------------------

其中實體類的帶參構造方法,爲new包名.類名的這個類的帶參構造方法。

String hql = "select new cn.edu.jsie.common.Question2(id,type,description,pointInfo) from Question q where q.id="+id;

   

發佈了42 篇原創文章 · 獲贊 17 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章