我们在应用程序中注意到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)