Встречается на собеседованиях • сегодня
Как открыть новую транзакцию в одном сервисе без Self Injection
В Spring можно открыть новую транзакцию без Self Injection через TransactionTemplate или PlatformTransactionManager. Вот пример:
java
@Service
public class SomeService {
private final TransactionTemplate transactionTemplate;
text
public SomeService(PlatformTransactionManager transactionManager) {
this.transactionTemplate = new TransactionTemplate(transactionManager);
}
public void doInTransaction() {
transactionTemplate.execute(status -> {
// Транзакционный код
return result;
});
}}
text
Альтернативно можно использовать `@Transactional` на отдельном методе в новом классе-компоненте, который будет вызываться из основного сервиса. Это чище, чем self-injection.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы