2013-01-24 85 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模式,這可能很昂貴。