EJB如何将EntityManager与CompletableFuture一起使用?

时间:2017-12-01 14:11:09

标签: java ejb tomee

我必须调用外部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?

0 个答案:

没有答案