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

          hibernate criteria fetchmodal

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

          在 hibernate 中

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

          如果在對A查詢中 沒有對table B的查詢條件時候   使用 fetchModal.join 即可獲得 table A相關 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 信息自動加載出來
          - [*.*.model.PoLine@10a6ec4,*.*.*.model.PoLine@511358]  -- 自動的實例化。


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

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

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

          -- 試想 如下一個業(yè)務邏輯  要求查詢A對象 但是要求A對象下 List B  不能為空, 那么你就不能直接使用fetchMode  因為這樣查詢出來的A 不能保證 B的存在。


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 新晃| 卓尼县| 太谷县| 许昌县| 龙南县| 城市| 内乡县| 会理县| 泗洪县| 衡阳市| 中山市| 社旗县| 临沭县| 嘉兴市| 上蔡县| 巴彦淖尔市| 米林县| 罗定市| 泰兴市| 长海县| 满洲里市| 邯郸县| 大新县| 哈尔滨市| 安国市| 美姑县| 宜兴市| 剑川县| 淳安县| 石渠县| 三河市| 灵山县| 行唐县| 浠水县| 家居| 桐庐县| 东至县| 岳西县| 宜城市| 松滋市| 南康市|