当前位置: 首页 > 面试题库 >

Injecting EntityManager Vs. EntityManagerFactory

申光临
2023-03-14
问题内容

我们将Spring + JPA用于Web应用程序。我的团队在讨论如何在注入EntityManagerFactoryGenericDAO(基于泛型的东西对AppFuse中提供的线DAO,我们不使用JpaDaosupport过的注射某种原因)EntityManager。我们正在使用“应用程序管理的持久性”。

反对注入a的论点EntityManagerFactory是它太重了,因此不是必需的,这EntityManager就是我们需要的。而且,由于Spring将为每个Web请求创建一个DAO的新实例(我对此表示怀疑),因此不会有任何并发​​问题,因为在同一EntityManager实例中,两个线程共享该线程。

注入EFM的理由是,对于拥有工厂的人来说,这始终是一个很好的实践。

我不确定哪种方法最好,请问有人能启发我吗?


问题答案:

Spring docs 在这里详细说明了注入EntityManagerFactory和EntityManager的优缺点,我不确定是否可以对此进行改进。

话虽如此,你的问题中有一些要澄清的地方。

… Spring将为每个Web请求创建一个DAO的新实例…

这是不正确的。如果你的DAO是Spring bean,则它是单例,除非你通过scopebean定义中的属性对其进行了配置。为每个请求实例化一个DAO会很疯狂。

注入EMF的理由是,对于拥有工厂的人来说,EMF的良好实践总会带来好处。

这种说法并没有真正成立。一般的良好做法是,应向对象注入完成其工作所需的最少协作者。



 类似资料:

相关阅读

相关文章

相关问答