Как начать новую транзакцию при выполнении некоторого кода с помощью метода CompletableFuture.runAsyn c. Например:
void runAsync() {
ServiceUtils.runAfterTransactionCommits(() -> CompletableFuture.runAsync(() ->
doStuff()));
}
@Transactional
void doStuff() {
//insert DB update 1
//insert DB update 2
throw new RuntimeException("Some error happens");
}
Метод doStuff
не работает транзакционно, поскольку оба обновления отображаются в таблице даже после исключения. Как начать транзакцию для асин c кода?