2012-04-23 82 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分钟可能会慢,这取决于应用程序的大小。

相关问题