1. 程式人生 > >在hibernate中查詢使用list,map定製返回型別

在hibernate中查詢使用list,map定製返回型別

好文章啊,先轉了再說   

 在使用hibernate進行查詢時,使用得最多的還是通過構建hql進行查詢了。在查詢的過程當中,除使用經常的查詢物件方法之外,還會遇到查詢一個屬性,或一組聚集結果的情況。在這種情況下,我們通常就需要對返回的結構進行處理。
    一般情況下,我們通過構建hql,並通過設定query的resultTransformer來定製返回結果的型別,一般設定為map屬性,如下所示:

1 2 Query query = session.createQuery("hql"); query.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);

    來指定查詢結果的每一項為一個map。
    不過,隨著hibernate的發展,可以在hql中直接使用集合查詢語句,如list和map了。以下分別介紹使用list和map時的查詢語句以及查詢結果。首先,資料庫的資料如下所示:

1 2 3 4 5 6 7 8 9 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   | 四川   |
+-----------------+----+---------+------+--------+--------+ 3 rows in set (0.00 sec)

    以下分別介紹使用list和map的查詢語句和查詢結果:

    使用list

1 2 3 4 5

相關推薦

hibernate查詢使用list,map定製返回型別

好文章啊,先轉了再說     在使用hibernate進行查詢時,使用得最多的還是通過構建hql進行查詢了。在查詢的過程當中,除使用經常的查詢物件方法之外,還會遇到查詢一個屬性,或一組聚集結果的情況。在這種情況下,我們通常就需要對返回的結構進行處理。    

關於mybatis傳入引數在相應對映檔案 Collection,List,Map,Set,@Param這幾種的混合傳入的獲取

本片文章還是基於mybatis的介面的方式(動態代理)來說明: 關於普通多值傳入的方式以及獲取方式連結:點選這裡   第一種既有註解,又有普通引數 有註解的可以使用註解使使用的名字,沒有註解的只能使用該引數對應的Key(param1或者其它位置) 示例

hibernate查詢資料的 sessionget 和load的區別:

* 第一點.傳送SQL的時機: * load這個方法採用了一個技術.lazy延遲載入(懶載入).真正使用這個物件的資料的時候.(物件的資料不包括主鍵). * get這個方法是立即檢索.當執行session.get()方法的時候,馬上傳送SQL語句查詢.   * 第二點.返回的物件:

JavaSet,List,Map的區別

java集合的主要分為三種類型: Set(集) List(列表) Map(對映)   1.1 Collection介面 Collection是最基本的集合介面,聲明瞭適用於JAVA集合(只包括Set和List)的通用方法。 Set 和List 都繼

C#,出現Inconsistent accessibility返回型別不一致問題

C#中,出現Inconsistent accessibility返回型別不一致問題 2017年03月06日 14:59:01 QianSong_Promise 閱讀數:499 標籤: C#返回一致性屬性 更多 個人分類: C#

C++為什麼不允許通過返回型別過載函式的辯論

2004-07-05 13:25:31 別逗了問個問題:1。C++中為什麼不允許通過返回型別過載函式?2。為什麼不允許通過返回型別解析模板函式? 2004-07-05 14:47:55 完美廢人返回型別是一種可有可無的東西…… 2004-07-05 16:41:23 完美

JAVAlist map根據map某個key值進行排序

package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; im

Java集合List,Map,Set的使用

   結合框架體系應該最重要的是如何靈活利用三種介面,set,map,list,他們如何遍歷,各有什麼特徵,怎麼樣去處理,這是關鍵,在這個基礎上再去掌握在什麼場合用什麼型別的介面。比如說list和set,set是無序的一個空袋子,當我們只需要放入取出,這個介面當然是最實用的,但是如果我們需要按序取出,這個

hibernate直接執行原生sql遇到型別轉換問題

今天做了個用hibernate直接執行原生sql的查詢,遇到char型別的資料庫欄位查出來只能截斷成一位,後經高人指導,要用自定義的方言,如下: public class OracleDialect extends Oracle10gDialect{  public Orac

hibernate關聯查詢時物件設定int型別報錯

例如:A,B表,left join左表關聯,B表少條關聯資料,如果B表中有int型別,在物件中要用Integer包裝類,否則關聯查詢時int型別不能為null就會報錯,Integer有null值就沒問題

Hibernatelist()方法返回對映Map

Query query = kmBusiCataDAO.getCurrentSession().createSQLQuery(sql.toString())                 

hibernate使用原生sql查詢返回List Map String, Object ,並重命名返回資料列名稱

hibernate使用原生sql查詢時返回的欄位不能重新命名 例如使用如下sql查詢時報錯 sql = "SELECT t.type_name as `name`,SUM(o.circulation) FROM " +

hibernate hql 查詢返回結果型別

hql和sql區別/異同 HQL ————————————SQL 類名/屬性 ————————— 表名/列名 區分大小寫,關鍵字不區分大小寫———— 不區分大小寫 別名————————————————別名 ?,從下標0開始計算位置(hi

hibernate的sql方式查詢count()的返回型別

使用hibernate的Sql方式查詢有count的sql時,返回的List的型別為BigDecimal,如果沒有表記錄,list也不會為null,而是list.get(0)為null,list.si

Hibernatesql查詢返回不受Hibernate管理的實體

Hibernate查詢有好多種方法,當我們需要查詢自己構建的實體時,需要使用session.createSQLQuery(sql)方法查詢實體,但這樣只能返回由Hibernate管理的實體,即生成資料庫表的那些實體,為了返回任意的自定義的實體,我們需要這樣做: sess.c

spring 配置檔案如何注入map list set等型別

先定義一個bean import java.util.List; import java.util.Map; import java.util.Properties; import java.util

Hibernate SQLQuery查詢返回List,在mysql命令下直接執行sql語句可以正常得到記錄

遇到的問題如標題所述。 用Hibernate的SQLQuery來list記錄, 背景: 1、前一天還能正常返回資料,今天就不可以用了,程式碼絕對沒有變動過。 2、是多表查詢,且在where條件中還使用了select查詢(就這樣套了很多層)。 3、以為是多表聯查有問題,百度之

Hibernate的條件查詢完畢類

hiberna 產生 content div ber ont size 查詢 criteria Hibernate中的條件查詢有下面三個類完畢: 1、Criteria:代表一次查詢 2、Criterion:代表一個查詢條件 3、Restrictions:產生

hibernatehql語句list和iterate區別

每次 hibernate 寫入 所有 讀取 條件 iter 查詢 hql 1.使用list()方法獲取查詢結果,每次發出一條語句,獲取全部數據。2.使用iterate()方法獲取查詢結果,先發出一條SQL語句用來查詢滿足條件數據的id,然後依次按照這些id查詢記錄,也就是要

Mysql使用存儲過程返回查詢多個表的數據信息

lan var rmi pan cas nis lang fun sub -- 測試手機號 call P_Base_CheckLogin(‘15584463676‘); -- 測試登錄名 call P_Base_CheckLogin(‘sch000001‘)