Both annotation on same method.

    @Async
    @Transactional
    public Future<?> asyncTask() {
    ....

First the transaction aspect is called, starting the transaction, then the async aspect, spawning a new thread. The order should be inverse.

Sample repo: https://github.com/cdalexndr/spring-boot-issue-26699

Spring Boot 2.4.4

Comment From: cdalexndr

declare precedence should be used to order aspects.

Comment From: jhoeller

Duplicate of #24309.