如何使用 CompletableFuture 进行两次数据库调用并等待结果
How to use CompletableFuture for making two DB call and wait for the result
假设我有一种情况,我调用两个存储库来获取项目。
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();
假设我有一种情况,我调用两个存储库来获取项目。
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();