Java 是否可以序列化hibernate EntitiyManager Factory?

Java 是否可以序列化hibernate EntitiyManager Factory?,java,hibernate,jpa,Java,Hibernate,Jpa,我有一个使用hibernate的项目,启动时间很长,我想知道是否可以序列化EntityManagerFactory,因此只有第一次启动会很慢。它可以在hibernate中序列化(在其他JPA实现中不一定如此),因为hibernate内部接口扩展了可序列化的。但这是供内部使用的,可能是由应用服务器以某种方式对其进行钝化 您的问题位于其他地方,不应该通过序列化entity manager工厂来解决。通常在启动时,它会创建一个连接池,并用新的数据库连接填充它。而且你不能序列化这些连接,所以如果你这样做

我有一个使用hibernate的项目,启动时间很长,我想知道是否可以序列化EntityManagerFactory,因此只有第一次启动会很慢。

它可以在hibernate中序列化(在其他JPA实现中不一定如此),因为hibernate内部接口扩展了可序列化的。但这是供内部使用的,可能是由应用服务器以某种方式对其进行钝化

您的问题位于其他地方,不应该通过序列化entity manager工厂来解决。通常在启动时,它会创建一个连接池,并用新的数据库连接填充它。而且你不能序列化这些连接,所以如果你这样做的话,将会出现一系列新的问题


相反,请确保数据库及时响应(如果没有,则会减慢池的填充速度),以及启动是否真的那么慢。30秒并不慢,5分钟可能慢,这取决于应用程序的大小。

答案是:它是否实现了
Serializable
?您可能想进一步研究它慢的原因。来自Gaving KING:
“serialized”SessionFactory实际上只是一个名称;它不会序列化整个状态。如果重新启动,则需要重建工厂。
Source: