Spring Data JPA:更新后的查找对象并不总是更新的对象

时间:2017-08-24 06:07:43

标签: spring hibernate spring-data-jpa

我们在应用程序中注意到find-method并不总是返回最新的对象。

我们有一个像这样的简历(简化):

public interface ObjRepo extends JpaRepository<Obj, Integer> {
  @Secured({})
  @RestResource(exported = false)
  Obj findObjByObjToken(String ObjToken);
}

简化,我们有一个像这样的网络服务:

private static final Object lock = new Object();

private ModelAndView handle(HttpServletRequest request) {
    synchronized (lock) {
        String token = request.getParameter("token");
        Obj obj = objRepo.findObjByObjToken(token);
        obj.changeStuff();
        objRepo.save(obj);
        return ...;
    }
}

同时多次调用webservice;由于同步锁定,所有调用都将被串行处理。

我希望findObjByObjToken始终返回更新的值,但通常会返回旧版本。 我们做了一些测试,中断点似乎在600毫秒左右。

我们如何确保“找到”&#39;总是返回更新版本?

(编辑;我们使用Spring 1.3.3.RELEASE)

0 个答案:

没有答案