1. 程式人生 > >Hibernate通過sql查詢返回list或者是map

Hibernate通過sql查詢返回list或者是map

hibernate大致分如下集中查詢:

1.Criteria查詢,簡稱QBC<Query By Criteria>;

2.HQL查詢;

3.SQL查詢;

記一下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”;