现在想测试一下hibernate的悲观锁问题 
 public void testLoad1(){//这个方法模拟用户一调试运行
session=HibernateSessionFactory.getSession();
tx=session.beginTransaction();

User user=(User)session.load(User.class, 3,LockMode.UPGRADE);
System.out.println(user.getName());//调试到这里停止执行 模拟用户一 用悲观锁 锁住数据
                            session.setName("王五");
System.out.println(user.getId());
                        tx.commit();
                        ...

}
public void testLoad2(){//这个方法模拟用户二直接运行,按道理应该他只发出sql就一直等待用户一commit以后才能对数据进行操作呀,可却能运行过!

session=HibernateSessionFactory.getSession();
tx=session.beginTransaction();

User user=(User)session.load(User.class, 3,LockMode.UPGRADE);
System.out.println(user.getName());
session.update(user);
System.out.println(user.getId());

tx.commit();
...
}
代码运行正常,就是用户一 好像没锁住,hibernate发出的sql后面没有加上for update ,用的是MS SQL数据库 苦思不得其解