EJB: Evite reversão de transações
Quando um método (transacional) de um EJB chama outro método (transacional) de outro EJB, e uma exceção é lançada no segundo, mas capturada no primeiro, parece que a transação é revertida automaticamente quando o segundo retorna , mesmo que o primeiro pegue, é verdade? como posso evitá-lo?
O cenário é o seguinte:
@Stateless
class ClassA {
@EJB
ClassB objectB;
methodA() {
try {
objectB.methodB();
}
catch(Exception e) {
//Here the transaction started in this method is
//automatically rolled back. Is this avoidable?
}
}
}
@Stateless
class ClassB {
methodB() throws Exception { throw new Exception() }
}