Hibernate3 实体属性的延迟加载——Hibernate深入浅出
来源:互联网 发布:富士康机器人编程软件 编辑:程序博客网 时间:2024/05/19 09:09
如果实体对象中存在大文本或者图像等属性字段,有必要将该种字段设置为延迟加载,即在需使用该字段的时候再加载该字段的内容。
属性延迟加载的实现:
1、在实体映射文件中,通过property节点的lazy属性,可以为特定的属性制定延迟加载策略。
2、配置了lazy属性之外,还要借助类增强器对二进制Class文件进行强化处理(buildtime bytecode instrumentation)。通过ANT调用Hibernate类增强器对TUser.class文件进行强化处理。脚本如下:
属性延迟加载的实现:
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>
<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>
注:脚本中涉及的配置路径,根据项目目录修改。<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>
- Hibernate3 实体属性的延迟加载——Hibernate深入浅出
- Hibernate3中的属性延迟加载
- hibernate—延迟加载
- Hibernate属性延迟加载
- hibernate的级联、延迟加载、inverse属性
- Hibernate 集合属性的延迟加载
- Hibernate集合属性的延迟加载
- Hibernate 的延迟加载【lazy】属性
- Hibernate延迟加载之属性延迟加载
- Hibernate性能调优--关联实体的延迟加载
- Hibernate 延迟加载类属性
- hibernate复习4 延迟加载1--实体
- Hibernate实现实体对象延迟加载(转载)
- 浅析Hibernate实现实体对象延迟加载
- hibernate实体配置关系映射&延迟加载
- Hibernate延时加载---集合属性的延迟加载
- hibernate的延迟加载
- Hibernate的延迟加载
- 解析输入
- jxl
- Unity IOS 中文显示
- 如何实现Android SurfaceView
- 如何正确地在Axis、Axis2和Apache CXF之间抉择?
- Hibernate3 实体属性的延迟加载——Hibernate深入浅出
- Xcode分析CrashLog的方法
- 关于sqlserver 分页问题
- OAUTH 简介
- c++中char *和char []的区别
- SQL存储过程之删除指定表中指定字段所有约束
- Oracle的取整和四舍五入函数——floor,round,ceil,trunc
- AndroidManifest.xml中android:configChanges的简介
- 劳累过度死亡谁来负责