@Test
public void r(){
session = getSession();
Transaction tr = session.beginTransaction();
/**
* User user = (User) session.get(User.class,7);---首先从session缓存中找有没有id为7的user对象
* 因为没有所以
* tr.commit();提交后就会发送sql语句将id为7的记录查出来生成一个user对象
* 因此在执行user时不会报错
* */
// User user = (User)session.get(User.class, 7);
/**
* User user = (User) session.load(User.class,8);--首先从session缓存中找有没有id为8的user对象
* 因为没有所以
* tr.commit();提交后不会发送sql只会一个带id=8的user代理对象,如图
* 执行user时因为除了要用id属性,还要用其它的属性,正常情况下此时会发送sql去数据库查id为8的记录,但因为此时session已经关闭,所以会报请如图:
*
* */
User user = (User) session.load(User.class, 9);
tr.commit();
closeStream(sessionFactory, session);//关闭sessionFactory,session资源
System.out.println(user);
}