代码:void fun(){
   
   User user = new User();
   user.setId(1); 
   user.setName("aaa");   update(user);   User newUser = select(1);
   //这里查询出的newUser的name还是更新前的值。}void update(User user){
  // 更新用户信息
}User select(id){
  // 根据id查询用户信息
}
使用spring配置的事务的时候,上面方法 fun、update被spring配置了事务propagation="REQUIRED"。
数据库使用的mysql,Innodb引擎。 数据库默认事务隔离级别是REPEATABLE-READ现在出现的问题是:
在fun方法中先调用update()方法更新用户信息, 然后再调用select()方法查询用户信息, 结果查询出来的是旧值。 
问题出现的原因是方法fun()开启了一个事务T1 , 方法update()开启了一个事务T2 。
由于数据库隔离级别是REPEATABLE-READ, 在T1事务开启之后 , T2事务开启并提交,此时T1事务还是无法查看到T2事务提交的内容。
如果将数据库事务隔离级别该为Read-Commit该问题就可以解决了, 但是现在要求不能修改事务隔离级别。 所以我想问, 可不可以让update()方法不要单独开启一个事务,而是在fun()方法的事务中运行 。 那么fun()方法中应该就可以看到update()方法的更新了。