EntityManagerFactory实例是重量级对象。每个工厂可能维护一个元数据缓存,对象状态缓存,EntityManager池,连接池等。如果您的应用程序不再需要EntityManagerFactory,则应将其关闭以释放这些资源。
当EntityManagerFactory关闭时,该工厂中的所有EntityManager以及由这些EntityManager管理的所有实体都将变为无效。
保持工厂长时间开放比重复创建和关闭新工厂要好得多。因此,大多数应用程序永远不会关闭工厂,或者仅在应用程序退出时关闭工厂。
只有需要具有不同配置的多个工厂的应用程序才有明显的理由来创建和关闭多个EntityManagerFactory实例。
对于每个部署的持久性单元配置,只允许创建一个EntityManagerFactory。可以从给定的工厂创建任意数量的EntityManager实例。
JVM中可能同时有多个实体管理器工厂实例。EntityManagerFactory接口的方法是线程安全的。



