如何使用CompletableFuture进行两次DB调用并等待结果



假设我有一种情况,我调用两个存储库来获取项目。

CompletableFuture<Optional<Account>> accountCompleteableFuture = CompletableFuture.supplyAsync(() ->AccountRepository.findById(accountId));
CompletableFuture<Optional<User>> userCompletableFuture = CompletableFuture.supplyAsync(() ->userRepository.findById(userId));

当两者都完成并带回结果时,我如何获得反馈?传统上,我会一个接一个地调用两者,然后执行剩下的逻辑。在这里,我想加快这个过程。我试图做一些类似thenCombine((的事情,但两者都是不同的对象,我无法在lambda中写入逻辑。有人能提出更好的方法吗?

CompletableFuture.allOf( groupCompletableFuture, userCompletableFuture ).join();

最新更新