hql關聯表 map list查詢

2021-07-04 23:31:26 字數 2207 閱讀 5224

介紹下關於hql中的關聯表查詢的用法吧,這個算是我自己摸索嘗試出來的,也許不是最優化的,但還是可以和大家分享**下

之前由於對hql的了解不深,後來要使用關聯表查詢的時候,就特意查詢了一些資料,其中這篇文章讓我受益匪淺,深受啟發

這次主要是要使用關聯表查詢,專案中是使用的spring mvc+hibernate

關聯表查詢,顧名思義就是查詢結果設計到多個表的資訊,且彼此間有一定的關聯

在spring mvc中使用hql關聯表查詢的方法:

拿當前我們系統當中的訂單表舉例說明,當前記錄中大部分記錄的是物件id,現在我要一併查詢訂單資訊以及訂單中關聯的買家資訊,步驟如下:

1.      首先宣告乙個類如com.zhiyuan.base.model.orderview

a)        私有變數有string id, string remark, int orderstatus, buyeruser buyer等等,並進行getter&&setter方法繫結

b)        建立建構函式orderview(string id, string remark, int orderstatus, buyeruser buyer),然後在建構函式中進行私有變數的賦值

c)        注意:這個類不要打註解@entity/@table,因為這只是個臨時的實體類,如果打註解後會在資料庫中自動生成表的

d)        重點宣告一點:在建構函式中可以傳參基本型別的資料,也可以傳參集合甚至自定義的物件型別

2.      建立對應的orderview dao,依照以往的方式宣告dao以備接下來的service中呼叫

3.      準備hql

a)        準備hql主體:select new com.zhiyuan.base.model.orderview(order.id, order.remark, order.orderstatus,buyer) from goodsorder order, buyeruser buyer where order.buyerid = buyer.id

b)        當然where 後面可以繼續補充檢索條件等

4.      在service中呼叫orderviewdao執行查詢hql的操作,這樣就會將查詢結果自動封裝為orderview物件了

在spring mvc中使用hql用(new map) 方法統計分組等資訊:

1.      準備hql

a)        select new map(id, status,count(*) as number, sum(price) as price) from goodsorder

b)        在where條件中拼寫檢索條件排列順序等

2.      執行hql,用hibernatetemplate執行此hql,然後將結果進行處理

在spring mvc中使用hql用(new list) 方法統計分組等資訊:

1.準備hql

a)        select new list(id, status,count(*), sum(price)) from goodsorder

b)        在where條件中拼寫檢索條件排列順序等

2.執行hql,用hibernatetemplate執行此hql,然後將結果進行處理

listlist = hibernatetemplate.find(hql);

for (listitem : alllist)

hql語句 單錶查詢

在hibernate中,有下列比較常用的查詢語句 1 hql hibernate query language 2 criteria queries 條件查詢 3 native queries 原生態sql語句查詢 最常用的就是hql,那麼 使用hql進行查詢,又分為 單錶查詢,一對多和多對多查詢,...

關聯表查詢

1 imemoryrelationshipclassfactory fac mapcontext.createobject esrigeodatabase.memoryrelationshipclassfactory as imemoryrelationshipclassfactory irelat...

表關聯查詢

一 內連線和外連線 內連線用於返回滿足連線條件的記錄 而外連線則是內連線的擴充套件,它不僅會滿足連線條件的記錄,而且還會返回不滿足連線條件的記錄,語法如下 oracle 1.select table1.column,table2.column from table1 inner left right...