两个不同数据库的一个TransactionInterceptor

时间:2017-12-28 17:13:22

标签: cdi interceptor transactional

我的事务拦截器实现让我感到头疼。在我的应用程序中,我有两个合格的生产者方法用于两个不同每个@DatabaseA和@DatabaseB都会生成一个不同的@RequestScoped EntityManager。所以,当我想连接到@DatabaseA我正在使用...

@Inject @DatabaseA EntityManager em;

......等等。一切正常,但我如何在我的事务拦截器中弄清楚EntityManager使用什么来避免模糊的依赖错误?

@Interceptor
@Transactional
public class TransactionalInterceptor {

    @Inject @???
    private EntityManager em;

    @AroundInvoke
    public Object proceed(InvocationContext context) throws Exception {
        em.getTransaction().begin();

        Object o = context.proceed();

        em.getTransaction().commit();

        return o;
    }
}

我想在两个不同的DAO中只使用一个Interceptor,它必须将数据保存到两个不同的数据库中。有可能吗?

0 个答案:

没有答案
相关问题