User u1 = (User)session.get(User.class,1);
session.getTransaction().commit();
System.out.println(u1.getName()+"|"+u1.getGroup().getName());
为什么这样写会报错no session
而
User u1 = (User)session.get(User.class,1);
System.out.println(u1.getName()+"|"+u1.getGroup().getName());
session.getTransaction().commit();
这样就能正确打印呢?
------解决思路----------------------
因为session 在提交事物后会关闭 所以你上面那个你已经吧session关闭了 所以出现no session
select是没必要提交事物的
------解决思路----------------------
1.对数据库的增删改操作,先保存到缓存里,当commit之后,真正在数据库执行!
2.第一个例子中getName()操作也先要保存到缓存里。
不知明白否?