Hibernate当前对象检索优化get()与load()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangyang668/article/details/82392157

1.当前对象检索优化

       对于当前对象进行检索,即是对主加载对象进行检索,一般使用Session提供的 两个

方法;get()load()。 

2. get() 与 load() 的区别

    相同点: 两者都是根据id进行加载的。

    不同点:默认情况下,get()方法直接加载,而 load()方法为延迟加载;

                    get()方法未加载到返回为null,load()方法未加载到则抛出异常。

3.get() 与 load()加载过程详解

       get()方法的直接加载指:当代码中中出现get()时,后台马上会调用执行select

语句,将对象直接加载到内存。

       load()方法的直接加载指:当代码中中出现load()时,后台并不会马上会调用执行

select语句,只有当代码中真正要访问除了对象的主键id属性以外的其他属性时,即真

正要访问对象的详情时,才会真正执行select语句,即此时才会将对象真正加载到内存。

     load()因id不存在而抛出异常原因:延迟加载,使用了代理,而代理要求返回的内容不能为空,所

以就会抛出异常。

猜你喜欢

转载自blog.csdn.net/wangyang668/article/details/82392157