Аннотация @Transactional в Java используется для декларативного управления транзакциями. Она позволяет определить границы транзакций, указывая, какие методы должны выполняться в рамках одной транзакции.
Основные аспекты:
propagation: определяет, как должен вести себя транзакционный метод при вызове из другого транзакционного контекста. Например, REQUIRED, REQUIRES_NEW, SUPPORTS, NOT_SUPPORTED, NEVER, MANDATORY.isolation: определяет уровень изоляции для транзакции. Например, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZABLE.readOnly: указывает, что транзакция выполняется только для чтения данных, что иногда позволяет оптимизировать производительность.timeout: устанавливает время ожидания для транзакции.rollbackFor и noRollbackFor: указывают, при каких исключениях транзакция должна быть откатана или не должна быть откатана соответственно.Пример использования:
java
@Transactional упрощает управление транзакциями, позволяя разработчику сосредоточиться на бизнес-логике, а не на низкоуровневом API управления транзакциями (например, JTA или JDBC Connection).