Особенности автоматической фиксации jdbc внутри транзакции JPA

У меня есть метод буксировки следующим образом:

@org.springframework.transaction.annotation.Transactional
public boolean creditAccount(String accountId)
{
      LogUtility.logTxn(accountId);
      // Do somethings 
}

public class LogUtility
{
    javax.sql.DataSource dataSource; // this property initialized in static block of intilalizing LogUtility class

    public logTxn(String account)
    {
       java.sql.Connection conn = dataSource.getConnection();
       conn.setAutoCommit(true);
       CallableStatement cs = conn.prepareCall(/*name of a oracle package and its procedures*/);
       cStmt.execute();   
    }
}

Я хочу понять, когда произойдет исключение в creditAccount метод после LogUtility.logTxn метод называется (здесь: // Do somethings) затем LogUtility.logTxn метод фиксации или отката? я знаю creditAccount метод в этой ситуации откатился, но я не знаю поведение logTxn метод.

1 ответ

Решение

Вы создаете другое соединение из источника данных, это означает, что у вас есть другой сеанс с базой данных, поэтому это соединение имеет свою транзакцию и фиксацию / откат отдельно

Другие вопросы по тегам