Карточка Middle Транзакции и @Transactional обновлено

Где Spring хранит текущую транзакцию

Вопрос

Как репозиторий находит текущую транзакцию?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

TransactionSynchronizationManager хранит ресурсы транзакции (соединение, EntityManager) в ThreadLocal текущего потока. Репозитории и JdbcTemplate берут соединение оттуда.

Ответ

TransactionSynchronizationManager хранит ресурсы транзакции (соединение, EntityManager) в ThreadLocal текущего потока. Репозитории и JdbcTemplate берут соединение оттуда. Поэтому транзакция не переходит в другие потоки.

Разбор

TransactionSynchronizationManager хранит ресурсы транзакции (соединение, EntityManager) в ThreadLocal текущего потока. Репозитории и JdbcTemplate берут соединение оттуда. Поэтому транзакция не переходит в другие потоки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.