小编Phi*_*eLM的帖子

JPA EntityManager静态或实例?

我在过去构建了一些JPA的东西,它们使用了javax.persistence.EntityManager每个DAO实例的一个实例; 这是大多数示例的设置方式.

public class BaseDaoThatEveryDaoExtends {
   @PersistenceContext
   private EntityManager entityManager;
}
Run Code Online (Sandbox Code Playgroud)

我只是偶然发现使用注释注入的静态 代码,架构师告诉我这不会引起任何问题,即使在具有JTA和XA数据源的集群应用程序中也没有任何问题:javax.peristence.EntityMangerPersistenceContext

public class BaseDaoThatEveryDaoExtends {
   @PersistenceContext
   private static EntityManager entityManager;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这是一个反模式,因为它EntityManager保存一些状态信息并使其静态使整个状态应用程序广泛.这也使得课程很难测试.

这样做有其他缺点还是这是使用标准的方法EntityManager

java hibernate jpa entitymanager

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

entitymanager ×1

hibernate ×1

java ×1

jpa ×1