隨筆-86  評論-33  文章-0  trackbacks-0
                 Hibernate3開始增加了通過property節(jié)點的lazy屬性,為特定的屬性指定延遲加載策略,以避免實體整體加載可能帶來的性能浪費,尤其是像長文本之類的大字段。那么實現(xiàn)屬性延遲加載需要做兩件事:
                 1.修改映射配置文件,將需要延遲加載的字段增加lazy屬性并設置成true;
                 2.與實體和集合類型的延遲加載不同,Hibernate3屬性延遲加載機制在配置外,還需要用類增強器對二進制Class文件進行強化處理(借助ANT)
                 下面來演示下如何用ANT調用Hibernate類增強器對class文件進行強化處理.
           
                  1.下載ANT,配置ANT環(huán)境;(如果有Eclipse,直接就可以用它的ant);
                  2.新建ANT的build.xml腳本;
          <?xml version="1.0" encoding="UTF-8"?>
          <project name="hibernatelazy" default="instrument" basedir=".">
                
          <property name="lib.dir" value="./lib"/>
                <property name="classes.dir" value="./classes"/>
           
                
          <path id="lib.class.path">
                      
          <fileset dir="${lib.dir}">
                             
          <include name="**/*.jar"/>
                       
          </fileset>
                 
          </path>
                 
          <target name="instrument">
                     
          <taskdef name="instrument" classname="org.hibernate.tool.instrument.InstrumentTask">
                              
          <classpath path="${classes.dir}"/>
                              
          <classpath refid="lib.class.path"/>
                      
          </taskdef>
                      
          <instrument verbose="true">
                               
          <fileset dir="${classes.dir}/com/derek/known/hbm">
                                     <include name="Knownquestions.class"/>
                               </fileset>
                       </instrument>
                  
          </target>
          </project>

          其中注意
          <property name="lib.dir" value="./lib"/>所需的JAR文件路徑
          <property name="classes.dir" value="./classes"/>編譯輸出路徑

          就我的工程而言:
           
          我把build.xml放在了WEB-INF目錄下,輸出路徑就設置為該目錄下的classes目錄,待增強的字節(jié)碼文件為classes目錄下的com/derek/known/hbm/Knownquestions.class; 在命令行下切換到此目錄,執(zhí)行ant命令,即生成新的Knownquestions.class
          posted on 2007-09-20 16:01 Derek.Guo 閱讀(1836) 評論(0)  編輯  收藏 所屬分類: Java
          MSN:envoydada@hotmail.com QQ:34935442
          主站蜘蛛池模板: 南涧| 永泰县| 金湖县| 五莲县| 屯留县| 民权县| 广饶县| 平顶山市| 华亭县| 永福县| 南漳县| 迁西县| 南宫市| 布尔津县| 梧州市| 奈曼旗| 偃师市| 肃宁县| 陆川县| 齐齐哈尔市| 通化市| 临湘市| 平遥县| 古田县| 洪湖市| 九龙城区| 包头市| 池州市| 老河口市| 襄汾县| 大同县| 定安县| 三原县| 潼关县| 会泽县| 隆安县| 呼玛县| 内丘县| 布拖县| 高安市| 玛纳斯县|