Hibernate 5.3.7的字节码增强

问题描述

我以前在Hibernate 4.x中使用一个蚂蚁目标来检测我的类:

<target name="instrument" depends="compile">
        <taskdef name="enhance" classname="org.hibernate.tool.enhance.EnhancementTask">
            <classpath refid="extended.classpath"/>
            <classpath path="${classbin.dir}"/>
        </taskdef>

        <instrument verbose="true">
            <fileset dir="${TARGETROOT}/home/WEB-INF/classes">
                <include name="org/zfin/publication/Publication.class"/>
            </fileset>
        </instrument>
    </target>

但是当我升级到Hibernate 5.3.7时,这停止了工作。在ant中执行此操作的正确方法是什么?注意,我不使用Maven。

我尝试了此更改

    <target name="instrument" depends="compile">
        <taskdef name="enhance" classname="org.hibernate.tool.enhance.EnhancementTask">
            <classpath refid="extended.classpath"/>
            <classpath path="${classbin.dir}"/>
        </taskdef>

        <enhance base="${classbin.dir}" dir="${classbin.dir}/org/zfin/publication" failOnError="false" enableLazyInitialization="true"
                 enableDirtyTracking="false"
                 enableAssociationManagement="false"
                 enableExtendedEnhancement="false">
        </enhance>
    </target>

但是输出了 [增强]无法增强课程:Publication.class

指示它不起作用。它增强了该目录中的某些类,但没有增强我需要的类。

解决方法

我发现Hibernate 5.3.7使用的是字节伙伴1.8.17。升级到字节好友1.10.18时,一切正常!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...