首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Hibernate 查詢結果自定義映射:List、Map、POJO 與 ResultTransformer 實戰

     編輯:Java 綜合教學

Hibernate 查詢結果自定義映射:List、Map、POJO 與 ResultTransformer 實戰

Hibernate 查詢默認返回實體對象或 Object[],但實際開發常需只選部分字段、多表連接、聚合統計等場景,需靈活控制結果結構。本文系統講解 HQL 中的 `new List`、`new Map`、構造函數注入、`ResultTransformer` 等高級映射技巧。

準備數據

mysql> SELECT * FROM p_dictionary;
+-----------------+----+---------+------+--------+--------+
| dictionary_type | id | version | code | forbid | value  |
+-----------------+----+---------+------+--------+--------+
| COUNTY          | 1  | 0       | 001  |        | 四川   |
| COUNTY          | 2  | 0       | 002  |        | 北京   |
| COUNTY          | 3  | 0       | 001  | NULL   | 四川   |
+-----------------+----+---------+------+--------+--------+

一、new List 投影

String hql = "SELECT NEW LIST(p.code, p.value) FROM Dictionary p";
List> list = session.createQuery(hql).list();
// 結果: [[001, 四川], [002, 北京], [001, 四川]]