小魚的空氣

          記錄我所思

          Hibernate lazy load clob field

          Hibernate的Lazy load是很深得人心的,再配合使用Spring的OpenSessionInviewFilter基本可以減少很多勞累的工作。 Clob和Blob是兩個經常用的數據庫類型,也是查詢的殺手,在數據量上到一萬條以上,就就算你是執行一個只有十條記錄的分頁查詢,也得用上幾秒,Clob字段更加不敢用like查詢,時間長到你實在無法忍受,當然可以選擇全文檢索工具如Lucene。上面的問題自然要解決,方法可能很多,下面是其中一種,即對簡單屬性也 lazy load .

          1. 編碼,對相應的hbm.xml或annotation對該屬性加上lazy=true或@Basic(fetch = FetchType.LAZY).
          2. 編譯,對編譯后的Model Class進行字節碼織入,Hibernate已經提供了工具類,拿來運行即可,Ant腳本如下:

              <target name="instrument">
                  
          <taskdef name="instrument" classname="org.hibernate.tool.instrument.InstrumentTask">
                      
          <classpath path="${classes.dir}"/>
                      
          <classpath refid="project.classpath"/>
                  
          </taskdef>

                  
          <instrument verbose="true">
                      
          <fileset dir="${classes.dir}/com/gdsoftpark/cms/model">
                          
          <include name="*.class"/>
                      
          </fileset>
                      
          <fileset dir="${classes.dir}/com/gdsoftpark/common/core/base">
                          
          <include name="Model.class"/>
                      
          </fileset>
                  
          </instrument>
              
          </target>
          3. 運行,從生成的SQL你可以看到某些字段確實Lazy load了。

          posted on 2007-06-05 14:55 小魚 閱讀(908) 評論(0)  編輯  收藏


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


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆檔案

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 康乐县| 昂仁县| 鄂尔多斯市| 镇坪县| 肥城市| 太仆寺旗| 安宁市| 聂拉木县| 青浦区| 安福县| 南充市| 中江县| 甘洛县| 潜江市| 乳山市| 武胜县| 岳池县| 于都县| 阿拉善右旗| 淮南市| 通辽市| 陇川县| 嵊泗县| 九龙城区| 东方市| 平湖市| 湟源县| 临海市| 梁河县| 涞水县| 桂平市| 大姚县| 河北省| 临澧县| 措勤县| 张掖市| 兰坪| 和林格尔县| 云阳县| 石泉县| 贡觉县|