HQL的new map語法(一)

2021-08-22 02:48:56 字數 1560 閱讀 1789

通常hibernate查詢出的結果集是類似於 list或 list的型別

類似於下面這個方法

public listgetchosepaylist(sfjmsft jmsf) );

} catch (bdxcexception e)

return result;

}

其實hibernate可以查詢出list>型別的結果集。現簡單**

描述語句1

// 結果list中,每條記錄對應乙個object陣列,object中每個元素為hql語句中列的序號(從0開始)。

string hql=「select s.name from student s」;

list ls=session.createquery(hql).list();

for(string obj:ls)

語句2

//結果list中,每條記錄對應乙個map,map中key為hql語句中的序號,從0開始,key為字元,非數字。

string hql=「select new map(s.name) from student s」;

list ls=session.createquery(hql).list();

for(map m:ls)

語句3

//結果list中,每條記錄對應乙個map,map中key為hql語句中的別名。

string hql=「select new map(s.name as name) from student s」;

list ls=session.createquery(hql).list();

for(map m:ls)

hibernate對 select new map型別的hql解析的時候,遇到map這個關鍵字,將後面的列作為值,別名作為鍵(若無別名,則用數字代替)存入到乙個hashmap中。 

方法中使用該型別hql

public string getthirdpaylist(bdxcpagecontext context, sfjmsft queryvo)
附:select new ***型別解釋

select new list(p.name, p.address) from person as p ;

--select將選擇出來的屬性存入乙個list物件中

select new classtest(p.name, p.address) from person as p;

--select將選擇出來的屬性封裝成物件,前提是classtest支援p.name, p.address的建構函式,

select new map(p.name as personname) from person as p ;

--select將選中的表示式命名為別名,這種用法與new map()結合,選擇出來的是map結構, 以personname為key,將實際選擇出來的值作為value

HQL多個屬性查詢語法

string hql select id,name from street 例如 configuration conf new configuration configure sessionfactory sf conf.buildsessionfactory session session sf....

HQL不常用語法

1 刪除hive表中乙個或多個分割槽 alter table drop partition ymd 20200415 alter table drop partition ymd 20200415 alter table drop partition ymd 20200401,ymd 2020041...

Mysql按降序排序語法和HQL語句的語法

一,hql語句的寫法 資料庫從大到小排序 string hql from users u order by u.observtimes desc 從地幾條記錄查詢到第幾條記錄 query.setfirstresult 0 從第0個資料 query.setmaxresults 10 查詢到錢10個資料...