版权声明:本文为博主原创文章,未经博主允许不得转载。 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不存在而抛出异常原因:延迟加载,使用了代理,而代理要求返回的内容不能为空,所
以就会抛出异常。