Встречается на собеседованиях • сегодня

Как реализуешь транзакцию

В Java транзакции реализуются через JDBC или JPA. Основные принципы:

  1. JDBC пример:
java
Connection conn = null;
try {
    conn = dataSource.getConnection();
    conn.setAutoCommit(false); // Начало транзакции
    
    // Выполнение операций
    stmt1.executeUpdate("UPDATE accounts SET balance = balance - 100 WHERE id = 1");
    stmt2.executeUpdate("UPDATE accounts SET balance = balance + 100 WHERE id = 2");
    
    conn.commit(); // Фиксация изменений
} catch (SQLException e) {
    if (conn != null) conn.rollback(); // Откат при ошибке
} finally {
    if (conn != null) conn.close();
}
  1. В Spring можно использовать аннотацию @Transactional:
java
@Transactional
public void transferMoney(Account from, Account to, BigDecimal amount) {
    from.debit(amount);
    to.credit(amount);
}

Ключевые моменты:

  • ACID свойства (атомарность, согласованность, изоляция, долговечность)
  • Управление через commit/rollback
  • Уровни изоляции (READ_COMMITTED, SERIALIZABLE и др.)
  • Распространение транзакций (Propagation.REQUIRED и др.)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы