Пружина creates proxies
для all
classes
с комментариями @Transactional
- либо для class or on any of the methods
. Прокси-сервер позволяет платформе внедрять транзакционную логику до и после вызова метода - в основном для запуска и фиксации транзакции.
Если транзакционный компонент реализует интерфейс, по умолчанию прокси будет динамическим прокси Java. Это означает, что будут перехватываться только внешние вызовы методов, которые поступают через прокси-сервер - любые вызовы самозапуска не будут запускать транзакции - даже если метод помечен @ Transactional.
Изоляция:
DEFAULT:
Использовать уровень изоляции по умолчанию для базовой базы данных.
Read Uncommitted:
Разрешает грязное чтение
Read Committed:
Не допускает грязного чтения
Repeatable Read:
Если строка читается дважды в одной и той же транзакции, результат всегда будет одинаковым
Serializable:
Выполняет все транзакции в последовательности
Вы должны обратиться к этому Вопросу для более подробной информации.
Для обзора Здесь Здесь Здесь