Назад к вопросам
СБЕР
Senior
4
Расскажи про аннотацию @Transactional, как можно транзакцию настроить через неё?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Аннотация @Transactional в Java (обычно в Spring Framework) используется для декларативного управления транзакциями. Она позволяет указать, что метод или класс должен выполняться в рамках транзакции, и задаёт параметры поведения транзакции.
Через @Transactional можно настроить:
- propagation — режим распространения транзакции (например, REQUIRED, REQUIRES_NEW).
- isolation — уровень изоляции транзакции (READ_COMMITTED, SERIALIZABLE и др.).
- readOnly — оптимизация для операций только чтения.
- timeout — максимальное время выполнения транзакции.
- rollbackFor / noRollbackFor — исключения, при которых транзакция откатывается или нет.
Пример:
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class)
public void updateData() {
// бизнес-логика с транзакцией
}
Это упрощает управление транзакциями без необходимости писать явный код для начала, коммита или отката.