java-隔离级别为可重复读的疑团?

用mysql5.0的数据库,innodb引擎,用的默认隔离级别重复读,程序中用Spring3的注解@transactional,两个问题:
1、在事务T1中先根据用户id查询出唯一的用户,然后再根据这个id修改用户信息,然后根据用户id重复查询出这个用户,此时事务未提交,为什么可以查到修改后的用户数据,这是否违背了可重复读的原则?

2、T1先根据用户id查询用户,按照可重复读的理论知识,此时其他任何事务只能读此id的用户而不能修改,而我在反复试验中发现T2在T1已经读出该用户的情况下仍然可以修改这个id的用户数据,我怀疑肯定是我哪里理解错了?请各位大虾赐教,不甚感激~

http://www.cnblogs.com/xj626852095/p/3648036.html