どうやら Hibernate が原因で、Eclipse RCP アプリケーションで大きなパフォーマンスの問題が発生しています。具体的に言うと、アプリケーションの起動に非常に時間がかかります (最大 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>