首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hibernate的属性延迟加载设置有关问题

2012-08-11 
Hibernate的属性延迟加载设置问题已经对相应的实体属性设置了lazytrue,但是发现属性延迟加载设置没有其

Hibernate的属性延迟加载设置问题
已经对相应的实体属性设置了lazy="true",但是发现属性延迟加载设置没有其作用,上网查了下,是因为Hibernate3属性延迟加载机制在配置外,还需要用类增强器对二进制Class文件进行强化处理(借助ANT),
  于是我参照目前普遍的build.xml设置修改如下,

XML code
<?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}/entity">                <include name="House.class"/>            </fileset>        </instrument>    </target></project>

修改了实体类的位置,其他几乎完全按照网上,然后放在项目的web-inf下,与web.xml同目录。
  但是在xml文件中提示org.hibernate.tool.instrument.InstrumentTask找不到
对build,xml执行ant build命令,控制台输出信息如下
instrument:

BUILD FAILED
F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\build.xml:12: taskdef class org.hibernate.tool.instrument.InstrumentTask cannot be found

sing the classloader AntClassLoader[F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\classes;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\antlr-2.7.6.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\commons-collections-3.1.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\dom4j-1.6.1.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\hibernate3.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\javassist-3.9.0.GA.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\jta-1.1.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\ojdbc6.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\servlet-api.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\slf4j-api-1.5.8.jar;F:\eclipse_workspace\eclipse8\Fwxx_New\WebRoot\WEB-INF\lib\slf4j-simple-1.5.8.jar]

请问错在哪里,谢谢各位了,网上相关信息也少,我用的是Hibernate-3.3.2GA版本,谢谢了。
Hibernate的属性延迟加载怎么那么复杂啊,其他的延迟加载测试都没有任何问题


[解决办法]
把org.hibernate.tool.instrument.InstrumentTask设为org.hibernate.tool.instrument.javassist.InstrumentTask,然后再跑跑看。

热点排行