OiE!
Estou com problemas para controlar a transação de um método.
Tenho um Bean controlado pelo Container que possui um método(atualizarPagamento) que deve dar um único commit ao atualizar em tabelas diferentes (REQUIRES_NEW).
Dentro do método, todos os Bens (modulo…) são REQUIRED.
Porém, só estou conseguindo salvar/atualizar os dados se invoco diretamente os DAOs. Através dos Beans não está funcionando
Alguém pode me ajudar?
@Stateless(name = "ModuloAtualizacaoPagamento")
@TransactionManagement(javax.ejb.TransactionManagementType.CONTAINER)
public class ModuloAtualizacaoPagamentoBean implements ModuloAtualizacaoPagamento{
@TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRES_NEW)
public void atualizarPagamento(final Disbursement disbursement, final PayHeader payHeader, final RoEvent roEvent,
final long cusNbr, final String nbrContrato, final ContractDetailPK contratoPK, final Bordero bordero, final PaymentTrasaction pTransaction) {
try {
if (pTransaction != null) {
LOGGER.info("Salvando PaymentTrasaction..");
moduloPaymentTransaction.salvarPaymentTransaction(pTransaction);
}
if (disbursement != null) {
LOGGER.info("Salvando Disbursement..");
moduloDisbursement.salvar(disbursement);
}
if (payHeader != null) {
LOGGER.info("Atualizando PO..");
moduloPayHeader.atualizarPayHeader(payHeader);
}
if (roEvent != null) {
LOGGER.info("Atualizando RO..");
moduloRoEvent.atualizarRoEvent(roEvent);
}
if (bordero != null) {
LOGGER.info("Atualizando Bordero..");
moduloBordero.atualizarBordero(bordero);
}
} catch (EJBException e) {
throw e;
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
throw new EJBException(e.getMessage(), e);
}
}
}
BrigaduU!!