wiflish
Loving Life! Loving Coding!
posts - 98,comments - 98,trackbacks - 0
如果实体对象中存在大文本或者图像等属性字段,有必要将该种字段设置为延迟加载,即在需使用该字段的时候再加载该字段的内容。
属性延迟加载的实现:
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>
  
注:脚本中涉及的配置路径,根据项目目录修改。
posted on 2006-08-15 15:54 想飞的鱼 阅读(1992) 评论(0)  编辑  收藏 所属分类: hibernate

只有注册用户登录后才能发表评论。


网站导航: