Встречается на собеседованиях • сегодня

Как открыть новую транзакцию при вызове метода @Service

В Spring можно управлять транзакциями через аннотацию @Transactional. Для создания новой транзакции при вызове метода сервиса:

java
@Service
public class MyService {
    
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void methodWithNewTransaction() {
        // Логика, выполняемая в новой транзакции
    }
}

Ключевые параметры:

  • propagation = Propagation.REQUIRES_NEW - всегда создает новую транзакцию, приостанавливая текущую (если есть)
  • Можно добавить isolation, timeout, readOnly при необходимости

Если метод вызывается из того же класса (не через прокси), аннотация не сработает - нужно вызывать через Spring-прокси (другой бин или self-injection).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы