Hibernate通過sql查詢返回list或者是map
阿新 • • 發佈:2019-01-27
hibernate大致分如下集中查詢:
記一下sql查詢。1.Criteria查詢,簡稱QBC<Query By Criteria>;
2.HQL查詢;
3.SQL查詢;
在實際應用中,有時會查詢某張表的個別欄位,這個時候就需要用原生sql來查詢。
但是通過原生sql查詢的返回結果會是list形式的陣列。
如查詢學生表的name,age列,返回的結果就是由多個name、age所在的陣列形成的list。
不過,可以通過hibernate特殊的支援方式,將用原生sql查詢出來的結果對映成List<List>或者是List<Map>.
1.如何對映成為List<List>
String sql=“select new List(s.name as name) from Student s where s.classNo = 1”; List ls=session.createQuery(sql).list();
2.如何對映成List<Map>
解釋:String sql=“select new map(s.name as name) from Student s”; List ls=session.createQuery(sql).list();
這種方式其實還是通過hql方式來實現查詢的,還是要符合對映關係的:
1.其中Student是實體類名,不是資料庫中的表名。
2.name,age等列名對應的是實體類中的屬性;
3.其中hql語句中的實體類名和屬性名是需要注意大小寫的;
4.如果用到DISTINCT來實現查詢時去重時:
String sql=“select DISTINCT new List(s.name as name) from Student s where s.classNo = 1”;