package br.com.ecodetech.alunoweb.interceptor; import java.io.Serializable; import javax.annotation.Resource; import javax.inject.Inject; import javax.interceptor.AroundInvoke; import javax.interceptor.Interceptor; import javax.interceptor.InvocationContext; import javax.transaction.UserTransaction; import org.apache.log4j.Logger; @SuppressWarnings("serial") @Interceptor @Transactional public class TransactionInterceptor implements Serializable { //@Inject //private EntityManager em; @Resource UserTransaction transaction; @Inject private transient Logger logger; @AroundInvoke public Object intercept(InvocationContext context) throws Exception{ transaction.begin(); logger.info("TransactionInterceptor.intercept(): Abertura de transação "+transaction); //em.getTransaction().begin(); Object result = context.proceed(); //em.getTransaction().commit(); logger.info("TransactionInterceptor.intercept(): Encerramento de transação "+transaction); transaction.commit(); return result; } }