posts - 8, comments - 0, trackbacks - 0, articles - 11

          hibernate criteria fetchmodal

          Posted on 2012-05-10 14:23 a_alter 閱讀(110) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate

          在 hibernate 中

          table A  (1) ----> (N) table B

          如果在對(duì)A查詢中 沒(méi)有對(duì)table B的查詢條件時(shí)候   使用 fetchModal.join 即可獲得 table A相關(guān) list B 信息。 sql 體現(xiàn)為  left out join table B 
          criteria.getCriteria().setFetchMode("poLines", FetchMode.JOIN);
          SQL
          from
                  PO_ORDER this_ 
              inner join
                  FO_FULFILL_TRX_STRING fofulfillt1_ 
                      on this_.AID
          =fofulfillt1_.AID_ORDER_PO 
              left outer join
                  PO_LINE polines4_ 
                      on this_.AID
          =polines4_.AID_ORDER 
              where
                  this_.AID_COMPANY
          =? 
                  and (
                      fofulfillt1_.AID_COMPANY, fofulfillt1_.GROUP_NO, fofulfillt1_.SEQUENCE_NO
                  ) in (
                      select
                          aid_company,
                          group_no,
                          sequence_no 
          - 1 
                      from
                          fo_fulfill_trx_string  
                      where
                          aid_order_po 
          = fofulfillt1_.AID_ORDER_PO
                  )

          line 信息自動(dòng)加載出來(lái)
          - [*.*.model.PoLine@10a6ec4,*.*.*.model.PoLine@511358]  -- 自動(dòng)的實(shí)例化。


          如果 你使用 opensessioninview 這樣的功能的話 會(huì)影響 fetchModel 的加載 (當(dāng) table B數(shù)據(jù)加載有條件的時(shí)候)

          fetchModel  想表達(dá)的意思是 你獲取A的同時(shí)想同時(shí)獲取B的信息  --- 而不是應(yīng)用于 同時(shí)獲取A和B  所以他的實(shí)現(xiàn)是left outer join 。

          多層數(shù)據(jù)應(yīng)對(duì)選擇合適的入口。 -- 更具業(yè)務(wù)

          -- 試想 如下一個(gè)業(yè)務(wù)邏輯  要求查詢A對(duì)象 但是要求A對(duì)象下 List B  不能為空, 那么你就不能直接使用fetchMode  因?yàn)檫@樣查詢出來(lái)的A 不能保證 B的存在。


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 巨野县| 太康县| 图片| 遵义市| 马关县| 昌乐县| 社会| 商水县| 库车县| 达日县| 抚顺市| 望江县| 北宁市| 宜兰市| 山丹县| 纳雍县| 岳阳县| 嘉荫县| 亚东县| 海口市| 长汀县| 达日县| 南安市| 江华| 林州市| 灵武市| 亳州市| 中超| 横峰县| 巫山县| 农安县| 黑水县| 安西县| 寿阳县| 东山县| 泰和县| 高青县| 平和县| 莒南县| 常宁市| 尉氏县|