为什么这个会报错
Session s = sessionFactory.getCurrentSession();
s.beginTransaction();
User u = (User)s.load(User.class, 1);
s.getTransaction().commit();
u.setName("a");
而为什么这个可以
Session s = sessionFactory.getCurrentSession();
s.beginTransaction();
User u = (User)s.get(User.class, 1);
s.getTransaction().commit();
u.setName("a");
load方法去查询的时候是在你要用到代理对象的数据的时候才去发送sql到数据库查数据,单是你在set的之前就commit了,把session关闭了,所以后面会报错,报错的类型是懒加载错误,而get的时候,是马上发起sql去查询数据放在对象中,对象已经存在了,所以你set的时候就不会报错!
把错误信息贴出来,还有你先确定数据库中是否有id为1的数据行。