Hibernate3 实体属性的延迟加载——Hibernate深入浅出

如果实体对象中存在大文本或者图像等属性字段,有必要将该种字段设置为延迟加载,即在需使用该字段的时候再加载该字段的内容。
属性延迟加载的实现:
1、在实体映射文件中,通过property节点的lazy属性,可以为特定的属性制定延迟加载策略。
< hibernate-mapping >
  
< class 
     
name ="test.Tuser"
     table
="T_USER"
     batch-size
="5" >
     
< id  name ="id"  columen ="id" >
        
< generator  class ="native" />
     
</ id >
     
< property 
         
name ="name"
         column
="name" />
     
< property 
         
name ="age"
         column
="age" />
     
< property
         
name ="resume"
         column
="resume"
         lazy
="true" />                //这里将个人简历(大文本字段)设置为延迟加载。
   
</ class >
</ hibernate-mapping >

2、配置了lazy属性之外,还要借助类增强器对二进制Class文件进行强化处理(buildtime bytecode instrumentation)。通过ANT调用Hibernate类增强器对TUser.class文件进行强化处理。脚本如下:
< project  name ="HibernateSample"  default ="instrument"  basedir ="." >
  
< property  name ="lib.dir"  value ="./lib" />
  
< property  name ="classes.dir"  value ="./bin" />
  
  
< path  id ="lib.class.path" >
     
< fileset  dir ="${lib.dir}" >
         
< include  name ="**/*.jar" />
     
</ fileset >
   
  
< 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.redsaga/hibernate/db/entity" >
          
< include  name ="TUser.class" />
       
</ fileset >
    
</ instrument >
 
</ target >
</ project >
  
注:脚本中涉及的配置路径,根据项目目录修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值