SpringBoot中的@Async注释不将数据保存到数据库

Sum*_*osh 5 java spring-boot

我的项目中有一个场景,我需要开发一个异步服务,该服务将从 Spring Boot 执行一些数据库更新操作。我知道@Async总是会生成一个新线程。因此,我正在采取以下操作:

我创建了两个单独的服务类。

第一服务等级[例如服务等级 A]

@Async
@Override
public Future<MyResponseModel> myMethodForApproval(parameterList) {
    MyResponseModel myResponseModel= new MyResponseModel();
    serviceClassB.performApproval(parameterList); 
    myResponseModel.setStatus("Success");
    myResponseModel.setMessage("Approval process initiated successfully");
    return new AsyncResult<MyResponseModel>(myResponseModel);
}
Run Code Online (Sandbox Code Playgroud)

在第二个服务类中【说服务类B,写的是实际的业务逻辑】

@Transactional(readOnly = false, propagation = REQUIRES_NEW, rollbackFor = { Throwable.class })
public void performApproval(parameterList) {
  //all the business logic checking.
  repoLayer.saveAll(myEntities);
Run Code Online (Sandbox Code Playgroud)

}

在控制器层:

@RequestMapping(value = "/approveProcess", method = RequestMethod.POST, consumes = { "application/json" })
public ResponseEntity<MyResponseModel> approveProcess(@RequestBody parameterList) {
    serviceClassA.myMethodForApproval(parameterList);
}
Run Code Online (Sandbox Code Playgroud)

现在我得到了例外

org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress
Run Code Online (Sandbox Code Playgroud)