Junior — Middle
177
Comment initier une nouvelle transaction dans le service sans utiliser de dépendances internes (Self Injection) ?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
В Spring для инициирования новой транзакции без использования self-injection можно применить программное управление транзакциями через TransactionTemplate или PlatformTransactionManager.
Пример с использованием TransactionTemplate:
@Service
public class MyService {
private final TransactionTemplate transactionTemplate;
public MyService(PlatformTransactionManager transactionManager) {
this.transactionTemplate = new TransactionTemplate(transactionManager);
}
public void method() {
transactionTemplate.execute(status -> {
// код, выполняемый в новой транзакции
return null;
});
}
}
Такой подход позволяет явно управлять границами транзакций без необходимости вызывать методы через прокси самого бина (self-injection). Это особенно полезно, когда нужно гарантировать, что код выполнится в новой транзакции.