Как изменить статус управляемой контейнером транзакции, помеченной для отката - PullRequest
0 голосов
/ 30 июня 2018
@Singelton
class A {


@Resource 
private TrsnactionSynchronizationRegistry tsr;

    @TransactionAttribute(TransactionAttributeType.Required)
    method () {

     // here tsr.getTransactionStatus() is 0 means active
     EntityClass entity = new EnityClass(); 
     em.persist(entity);// Duplicate Key exception
     em.flush();
     // here tsr.getTransactionStatus() is 1 means markedForRollback;



    }

В компоненте ejb singletion, использующем транзакцию, управляемую контейнером, и в спящем режиме согласно приведенному выше коду. После запуска em.persist (entity) из-за исключения дубликата ключа транзакция была помечена для отката. Но я хочу, чтобы транзакция была активной, как я могу избежать ее или изменить статус транзакции на активную.

...