Hibernate属性延迟加载

    Hibernate3开始增加了通过property节点的lazy属性,为特定的属性指定延迟加载策略,以避免实体整体加载可能带来的性能浪费,尤其是像长文本之类的大字段。那么实现属性延迟加载需要做两件事:
       1.修改映射配置文件,将需要延迟加载的字段增加lazy属性并设置成true;
       2.与实体和集合类型的延迟加载不同,Hibernate3属性延迟加载机制在配置外,还需要用类增强器对二进制Class文件进行强化处理(借助ANT)
       下面来演示下如何用ANT调用Hibernate类增强器对class文件进行强化处理.
 
        1.下载ANT,配置ANT环境;(如果有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目录,待增强的字节码文件为classes目录下的com/derek/known/hbm/ Knownquestions.class; 在命令行下切换到此目录,执行ant命令,即生成新的Knownquestions.class
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值