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

Как реализован TransactionManager в Hibernate

Hibernate использует TransactionManager для управления транзакциями, но чаще работает с EntityManager или Session, которые делегируют управление транзакциями JTA или JDBC.

Основные подходы:

  1. JTA (Java Transaction API) – для распределённых транзакций (например, в Java EE или Spring).
  2. JDBC Transaction – локальные транзакции, управляемые через Connection.

Пример с Hibernate Session:

java
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
    tx = session.beginTransaction();
    // Бизнес-логика
    session.save(entity);
    tx.commit();
} catch (Exception e) {
    if (tx != null) tx.rollback();
    throw e;
} finally {
    session.close();
}

В Spring транзакции обычно управляются через @Transactional, который под капотом использует PlatformTransactionManager.

Hibernate поддерживает оба подхода, но JTA требуется для XA-транзакций (например, в микросервисах).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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