get/load区别联系:
get:不考虑缓存的情况,get会调用之后立即向数据库发出sql语句,返回持久化对象
get:不考虑缓存的情况,get会调用之后立即向数据库发出sql语句,返回持久化对象
load:调用之后返回一个代理对象,代理对象只保存实体对象的id,直到适用对象的非主键属性时才会发出sql语句。
load:抛出一个异常,ObjectNotFoundException
@Test
public void testget() {
Students s =(Students)session.get(Students.class, 0);//马上执行sql,返回给s
System.out.println(s);
}
@Test
public void testload() {
Students s =(Students)session.load(Students.class, 0);
System.out.println(s);// 使用的时候才执行查询,如果为空,抛出异常
}