挂毯`EntityManager`与`EntityManagerManager`

问题描述

在Tapestry中,主要有两种获取EntityManager实例的方法:

  1. 通过直接注入EntityManager
    @Inject
    @PersistenceContext(unitName = MyPersistenceUnit)
    private EntityManager entityManager;
    
  2. 通过使用EntityManagerManager(也被注入):
    EntityManager entityManager = entityManagerManager.getEntityManager(MyPersistenceUnit);
    

EntityManagerManager在其Javadoc中指出,每个线程管理一个EntityManager

为当前线程管理EntityManager。一个 EntityManager根据需要创建,并在最后关闭 每个请求。

此服务的实现是按线程执行的。

这是否也适用于直接注入EntityManager?因此,例如,如果我在一个线程中启动事务,就像这样:

entityManager.getTransaction().begin();

在另一个线程中EntityManager的事务是否处于非活动状态-即entityManager.getTransaction().isActive()对于其他也注入了EntityManager的线程是否为假?


更一般而言,我对应该使用什么 感到好奇。一个人与另一个人有什么区别/优势?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)