注入EntityManagerVs。EntityManagerFactory

SB。

一个很长的问题,请忍受我。

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

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

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

我不确定哪种方法最好,有人可以启发我吗?

夫:

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

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

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

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

注入EMF的理由是,对于拥有工厂的人来说,EMF永远是一个好的习惯。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring + EntityManagerFactory +休眠监听器+注入

Java EE容器是否会自动关闭注入的EntityManagerFactory?

在带有Wildfly的Jersey上使用@PersistenceUnit注入EntityManagerFactory

在spring应用中注入2个(近期3个)不同的entityManagerFactory(或entityManager)

Spring数据jpa-未定义名为'entityManagerFactory'的bean。自动连接的依赖项注入失败

数据库服务关闭时,允许EntityManagerFactory注入为null

注入持久性依赖项失败;没有定义类型为[javax.persistence.EntityManagerFactory]的合格Bean

获取EntityManagerFactory的最佳实践

休眠SessionFactory与EntityManagerFactory

无法配置EntityManagerFactory

Hibernate SessionFactory与JPA EntityManagerFactory

无法建立EntityManagerFactory

Spring数据entityManagerFactory NoClassDefFoundError

EntityManagerFactory关闭,休眠

从休眠配置创建EntityManagerFactory

EntityManagerFactory和ApplicationContext的用法

创建两个entityManagerFactory

休眠速度更快,创建EntityManagerFactory

无法关闭与EntityManagerFactory的德比连接

自动注入的SQL注入

依赖注入,注入参数

找不到Spring Boot 2.1 EntityManagerFactory Bean

在 OSGi 中的 Hibernate 中创建 EntityManagerFactory

Spring Boot JPA获取对EntityManagerFactory的引用

初始化entityManagerFactory时发生MappingException

春季启动测试中的EntityManagerFactory Bean

何时应创建/打开EntityManagerFactory实例?

EntityManagerFactory 在部署耳朵时在 Weblogic 中关闭

构建EntityManagerFactory后如何获取Hibernate配置?