我的事务拦截器实现让我感到头疼。在我的应用程序中,我有两个合格的生产者方法用于两个不同每个@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,它必须将数据保存到两个不同的数据库中。有可能吗?