performance - Persistence.createEntityManager()与Hibernate一起非常缓慢

标签 performance hibernate jpa hsqldb entitymanager

我的Eclipse RCP应用程序存在巨大的性能问题,这显然是由Hibernate引起的。更具体地说,该应用程序需要极长时间才能启动(最多2分钟)-分析和调试显示,创建Hibernate / JPA EntityManagerFactory(在启动时发生)需要极长时间。

我在设置上玩了很多,例如使用文件数据库而不是内存,而不使用hbm2ddl,但没有成功。有没有人遇到过这样的问题?

我正在使用JDK 1.6.20,Hibernate 3.5和HSQLDB 1.8(内存中配置)。

以下是我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">
    <persistence-unit name="my_db" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <!-- about 20 classes; skipped for brevity -->
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
            <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:my_db"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
        </properties>
    </persistence-unit>    
</persistence>

最佳答案

        <property name="hibernate.hbm2ddl.auto" value="create-drop"/>


根据您拥有的实体数量,可能需要一些时间来创建所有表,索引等。我将更改为另一个数据库(或非内存数据库),将create-drop替换为“ create”,运行一次,完全删除属性(这样它就不会尝试创建已经存在的表),并且再次运行。这最后一步比您当前的配置更接近Hibernate花费的实际时间。

关于performance - Persistence.createEntityManager()与Hibernate一起非常缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032890/

相关文章:

asp.net - 我应该注意ASP.NET应用程序的哪些关键性能监视器

Java 防止返回 null

Linux 从 hibernate/挂起唤醒的命令

java - 由 : java. lang.ClassNotFoundException : com. springfoundation.model.Contact 引起 - maven

java - 使用@ElementCollection、@MapKeyJoinColumn 进行多对多关系时引用关键问题

c# - 托管代码能否像非托管代码一样快速地执行计算?

mysql - mysql 列数据类型对保持效率很重要吗?

php - Google Drive 存储图像 - 好方法还是坏方法

java - JPA异常: Object: null is not a known entity type

hibernate - Hibernate 中的条件 api 查询不存在