Встречается на собеседованиях • сегодня
Можно ли программно управлять транзакциями в Spring
Да, в Spring можно программно управлять транзакциями через TransactionTemplate или PlatformTransactionManager. Это полезно, когда нужен точный контроль над границами транзакции.
Пример с TransactionTemplate:
java
@Autowired
private TransactionTemplate transactionTemplate;
public void performTransactionalOperation() {
transactionTemplate.execute(status -> {
try {
// Бизнес-логика
return result;
} catch (Exception e) {
status.setRollbackOnly(); // Откат при ошибке
throw e;
}
});
}Пример с PlatformTransactionManager:
java
@Autowired
private PlatformTransactionManager transactionManager;
public void performOperation() {
TransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
// Бизнес-логика
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
throw e;
}
}Программное управление дает гибкость, но обычно предпочтительнее декларативный подход (@Transactional).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы