2012-04-23 59 views
0

我有一個項目,使用休眠和啓動時間很長,我想知道是否有可能序列化EntitiyManagerFactory,因此只有第一次啓動會很慢。是否可以序列化hibernate EntitiyManagerFactory?

+2

答案是:它是否實現了'Serializable'? – SJuan76 2012-04-23 21:40:04

+0

您可能需要進一步研究它爲什麼很慢。 – mellamokb 2012-04-23 21:41:23

+0

來自Gaving KING:「序列化的」SessionFactory實際上只是一個名稱;它不會序列化整個狀態。如果重新啓動,您需要重建工廠。資料來源:https://hibernate.onjira.com/browse/HB-178?focus_CommentId = 10677&page = com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment -10677" – Stephan 2013-02-12 10:25:04

回答

2

可以在hibernate中序列化(在其他JPA實現中不一定是這種情況),因爲休眠內部接口擴展爲Serializable。但這是爲了內部使用,可能是應用程序服務器能夠以某種方式鈍化它。

你的問題在別的地方,不應該通過序列化實體管理器工廠來解決。通常在啓動時創建一個連接池並用新的數據庫連接填充它。而且你不能序列化這些連接,所以如果你這樣做的話,會出現大量新問題。

相反,請確保數據庫及時響應(如果沒有 - 它正在放緩池的填充),以及你的啓動是否是真的慢。 30秒是不是慢,5分鐘可能會慢,這取決於應用程序的大小。

相關問題