Встречается на собеседованиях • сегодня
Как открыть новую транзакцию в одном сервисе
В Spring можно открыть транзакцию несколькими способами:
- Аннотация
@Transactional(наиболее распространенный способ):
java
@Service
public class MyService {
@Transactional
public void doInTransaction() {
// бизнес-логика
}
}- Программное управление через 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.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы