Spring JPA和跨多个WARS和@Persistence Context线程安全共享实体管理器

时间:2014-12-12 19:55:59

标签: spring jpa jpa-2.0 entitymanager persistence-unit

我读到了关于Persistence Context但未能清楚了解我的怀疑的情况,如下所示。
1.我有一个DAO类作为@PersistenceContext(unitName="") private EntityManager entityManager,并且从我的Service方法我使用@Transactional(propagation = Propagation.REQUIRED)启动事务(Spring Managed)。我在这里理解的是,每次调用此Service方法时,Transaction都会启动,当它到达DAO类时,它将使用相同的Transaction,但是对于每个EntityManager操作,它都会查找Active PersistenceContext并根据需要创建它。这种方法是否正确且线程安全? 因此,如果一个新线程启动相同的服务方法,那么当方法结束时,将创建一个新的Transaction和一个持久化Context并将其刷新。
2.我有多个WARS需要与数据库交互,所以我使用Spring Shared上下文共享EntityManagerFactory。我将所有Hibernate相关配置放在一个公共位置,并且在每个WAR中我指定将在哪里共享transactionManager。是不是? 请澄清我的疑虑,你的意见是有价值的。提前谢谢。

0 个答案:

没有答案