hibernate一些函數理解

uniqueResult();
這個方法是這樣用的
當你可以確定你的數據庫中根據你的查詢條件只會返回惟一結果,就能夠用這個方法!
不然就用list();
其返回類型爲 List<T>
可根據你的實際類型強轉! 
若是是result則是list類型。數據庫

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

1.查詢所有字段的狀況下,如"from 實體類",list中封裝的對象爲實體類自己,各屬性都將獲得填充。對象

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

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

對於後兩種狀況,用標籤遍歷時不太方便,由於沒法直接轉換成實體類的對象。遍歷

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

或者是如:select  new   map(a.name  as name, b.salary as salary)   from Person as a ,Salary b where a.id= b.personId ;方法

相關文章
相關標籤/搜索