Аннотация @Transactional в Spring Data указывает, что метод или класс должен выполняться в рамках транзакции. Spring AOP (Aspect-Oriented Programming) создает вокруг такого метода прокси-объект, который управляет жизненным циклом транзакции.
Основные действия, выполняемые @Transactional:
RuntimeException), транзакция фиксируется (commit).RuntimeException), транзакция откатывается (rollback).Основные атрибуты аннотации:
propagation: Определяет, как транзакции взаимодействуют друг с другом (например, REQUIRED, REQUIRES_NEW, SUPPORTS). По умолчанию REQUIRED.isolation: Определяет уровень изоляции транзакции для предотвращения проблем параллельного доступа к данным (например, READ_COMMITTED, REPEATABLE_READ). По умолчанию используется уровень изоляции базы данных.readOnly: Указывает, что транзакция должна выполняться в режиме только для чтения. Оптимизирует производительность для чтений.timeout: Задает максимальное время выполнения транзакции до автоматического отката.rollbackFor: Указывает список типов исключений, при возникновении которых должен происходить откат транзакции. По умолчанию откатывается на RuntimeException.noRollbackFor: Указывает список типов исключений, при возникновении которых откат транзакции не должен происходить.Пример использования:
java
Аннотация @EnableTransactionManagement обычно используется в конфигурационном классе, чтобы включить поддержку декларативного управления транзакциями.