Встречается на собеседованиях • сегодня
Что такое уровни propagation в транзакциях
В Spring есть 7 уровней propagation, определяющих поведение транзакции при вложенных вызовах:
- REQUIRED (default) - использует текущую транзакцию или создаёт новую
- SUPPORTS - работает в транзакции, если она есть, иначе без неё
- MANDATORY - требует активной транзакции, иначе исключение
- REQUIRES_NEW - всегда создаёт новую транзакцию, приостанавливая текущую
- NOT_SUPPORTED - выполняется без транзакции, приостанавливая текущую
- NEVER - требует отсутствия транзакции, иначе исключение
- NESTED - создаёт вложенную транзакцию (работает только с некоторыми БД)
Пример:
java
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodA() {
// Будет выполнено в новой транзакции
}
@Transactional(propagation = Propagation.MANDATORY)
public void methodB() {
// Требует активной транзакции
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы