Bom dia! No curso de JSF III foi criado o gerenciador de transações. Ele não contempla, se eu estiver certo, quando uma transação der erro. Eu alterei o método e queria saber se está correto, se não há nada que desabone-o. Eu testei na aplicação e funcionou.
@Transacional
@Interceptor
public class GerenciadorDeTransacoes implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
EntityManager manager;
@AroundInvoke
public Object executaTX(InvocationContext context) throws Exception {
Object resultado = null;
try{
manager.getTransaction().begin();
resultado = context.proceed();
manager.getTransaction().commit();
}catch(Exception e){
if (manager.isOpen()){
manager.getTransaction().rollback();
}
return resultado;
}
return resultado;
}
}