介紹下關於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...