如何读取同一事务中未提交的数据

How to read uncommit data in same transaction

我有一个方法执行并在另一个方法 userupdate 中调用。在方法 userupdate() 中,首先我从数据库中获取了用户实体,然后数据更改了它的名称。现在我尝试在 do 方法中获取相同用户 ID 的用户实体但成功了但问题是我有旧用户名没有新的更新用户名。我已经用隔离级别 READ_UNCOMMITTED 试过了。

      Transactional( isolation=Isolation.READ_UNCOMMITTED)
      public void do(){
      User user = getUser( userId );
      print(user.getName());//print old name Anuj
   }

private void userupdate( userId ){
  User user = finduserOnbaseUserId(userId);
  user.setName("updatedName");
}

请帮助我如何在 do() 中获取更新用户实体。提前致谢。

我知道这不起作用的原因,因为 spring 无法拦截相同 class 的方法调用,因此事务不适用于这种情况。更新方法需要新的 bean 并在此 class 中注入,然后代码 运行 成功,我已参考此 link