java - 将 Hibernate 工具移动到构建时间

标签 java performance hibernate jpa orm

我有一个包含大约 3000 个实体的应用程序(我知道很多,但我无法更改)。 当应用程序加载时,Hibernate 需要几分钟时间来完成所有检测和 SessionFactory 设置工作。
我想知道我是否可以配置 Hibernate 在构建期间对原始类进行检测。
这样我就可以避免 3000 个额外生成的代理类和应用程序启动的巨大开销。
我找到了一些关于 Hibernate 构建时检测 (org.hibernate.tool.instrument.javassist.InstrumentTask) 的信息,但尚不清楚这是否完全取代了运行时检测或仅处理Hibernate 惰性属性获取机制。
任何有关如何将代理生成移动到构建时间的信息都将不胜感激。

最佳答案

是的,你可以。 Hibernate 代码中有一个 Ant 任务:org.hibernate.tool.instrument.javassist.InstrumentTask

<target name="instrument" depends="compile">
    <taskdef name="instrument" classname="org.hibernate.tool.instrument.javassist.InstrumentTask">
        <classpath refid="<some-ant-path-including-hibernate-core-jar>"/>
        <classpath path="<your-classes-path>"/>
    </taskdef>

    <instrument verbose="true">
        <fileset dir="<your-classes>">
            <include name="*.class"/>
        </fileset>
    </instrument>
</target>

我也见过一些基于 Maven 的。

关于java - 将 Hibernate 工具移动到构建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12747527/

相关文章:

mysql - 在 MySQL 中批量更新临时表的插入速度不一致(使用 jdbcTemplate.batchUpdate)

java - 在 Hibernate 中检索使用 BigInteger 映射的属性时出现问题

java - 使用ExecutorCompletionService对不同依赖项执行并发调用

Java - 复数包?

大堆的 Java 速度较慢

java - Hibernate 用户和 friend JsonReference

java - Spring集成测试-配置中的事务声明似乎破坏了测试

java - JodaTime DateTime 和使用 AM/PM 处理语言环境

JAVA-从txt文件中读取整数并计算整数

javascript - 动态加载 : Pass back url to script or pass back script itself?