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

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

В Spring можно открыть транзакцию несколькими способами:

  1. Аннотация @Transactional (наиболее распространенный способ):
java
@Service
public class MyService {
    @Transactional
    public void doInTransaction() {
        // бизнес-логика
    }
}
  1. Программное управление через TransactionTemplate:
java
@Service
public class MyService {
    private final TransactionTemplate transactionTemplate;
text
public MyService(PlatformTransactionManager transactionManager) {
    this.transactionTemplate = new TransactionTemplate(transactionManager);
}

public void doInTransaction() {
    transactionTemplate.execute(status -> {
        // бизнес-логика
        return result;
    });
}

}

text

Ключевые параметры транзакции:
- `propagation` (REQUIRED по умолчанию)
- `isolation` (DEFAULT по умолчанию)
- `timeout`
- `readOnly`
- `rollbackFor`/`noRollbackFor`

Для работы необходимо иметь настроенный `PlatformTransactionManager` в контексте Spring.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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