在我的应用程序中,我创建了一个调度程序类。从那个类,我正在调用一个服务方法,它不是一个单一的事务。事务在存储库层进行管理。代码看起来像这样,
public void doAction(int id){
User user = repository.getUser(id);//transaction 1
repository.updateStatus(user);// transaction 2
repository.refresh():// call entityManager.refresh() internally
}
从存储库获取用户实体后,我正在更新状态。然后通过调用 entityManager.refresh() 刷新用户实体。但是在调用 refresh () 时,它抛出异常:InvalidArgumentException: Entity not managed。三个调用是三个不同的事务。
但我试图从 Spring Controller 调用此方法 (doAction),它工作正常。但是从调度程序类调用失败。
SMILET
相关分类