2013-01-24 25 views
1

我使用带Eclipselink和Derby DB的JPA。我想知道是否有一个选项可以在启动该过程时提高性能,因为调用了以下代码。提高JPA初始化性能

factory = Persistence.createEntityManagerFactory(persistenceUnitName); 

存在延迟,并且该过程在控制台中被调用并写入状态。

有没有办法省略这个过程并提高性能?

+3

该操作代价昂贵:扫描所有实体并创建元模型。你应该只做一次而已。没有EntityManagerFactory,你不能使用JPA。 –

回答

1

创建EntityManagerFactory需要部署持久性单元。这是你在应用程序或服务器的生命中应该只做过一次的事情。

由于它只执行一次,所以性能不应该成为一个主要问题,除非您构建的应用程序性能不佳并且多次调用它。

的方法来提高性能包括:

  • 使用静态织造,此招式编织加工到构建代码和启动时间删除。
  • 在persistence.xml中列出您的类并使用<exclude-unlisted-classes>true</exclude-unlisted-classes>,这样可以避免搜索整个jar类路径。
  • 确保您没有验证orm.xml模式,这可能很昂贵。