hibernate中Session的get()与load()方法区别
1、Session的get()与load()方法都可以根据给定的OID从数据库中加载一个持久化对象。load方法支持延迟加载策略,而get不支持。

2、我们在程序中查看这两个方法的区别:
@Test
public void testGet() {
News news = (News) session.get(News.class, 1);
//System.out.println(news);
}
@Test
public void testLoad() {
News news = (News) session.load(News.class, 1);
//System.out.println(news);
}

3、在session.get方法中,将直接去数据库执行一条select语句,而load方法只有当用到了对象的值才会执行sql语句去查询。


4、现在查看load方法返回的对象是一个代理对象,使用的是延迟加载策略。

5、若数据库表中没有对应的记录时,我们查看程序的执行结果。
get方法返回null值。
load方法会抛出异常。


6、如果在代理对象之前关闭了session,load方法可能会抛出懒加载异常。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:103
阅读量:78
阅读量:166
阅读量:188
阅读量:38