EntityManagerFactory 和 EntityManager 之间有什么区别

What is the difference between an EntityManagerFactory and an EntityManager

我正在通读 JAVA EE7 持久性章节,我看到的是您需要创建 EntityManagerFactory 才能创建 EntityManager。

所有的方法调用似乎都是由EntityManager完成的,那么为什么需要创建一个EntityManagerFactory?它具体有什么作用?

我尝试在这里和互联网上寻找答案,但无济于事。

谢谢。

通读一下工厂设计模式。 Leo 评论中链接的答案 () 链接并解释了一些文档。这是一个很好的起点。一般来说,依赖注入非常有用,但可能不在 EntityManager 的用例范围内。

IMO,这里要了解的关键是工厂的用途:作为产品的消费者(在本例中为经理),您所要做的就是向工厂订购一个,他们会提供你是对的。将此与您可以随意获取的一大堆产品进行比较。如果您是唯一一个抢夺者,这很好,但是一旦出现资源竞争,您就无法确保获得所需的确切对象,即使您知道它的外观。