我必须调用外部REST接口以获取应保存到数据库中的状态。由于可能需要一些时间才能使用REST-Ressource,我希望将其保存在单独的线程中。
我目前的想法是使用像这样的CompletableFuture:
@PersistenceContext
EntityManager entityManager;
StatusEntity statusEntity;
public void updateDBStatus(String statusId){
CompletableFuture
.supplyAsync(() -> getRestStatus(statusId))
.thenAccept((String result)-> persistResult(result));
}
private void persistResult(String result){
statusEntity = new StatusEntity();
statusEntity.setStatus(result);
//Debugger just stops here
entityManager.persist(statusEntity);
}
当我尝试调试时,我只是停留在" entityManager.persist" -Line而没有任何其他错误消息。问题是因为EJB只将EnityManager保留在主线程上吗?如何在completableFuture中使用entityManager?