00:01
那么我们刚才呢,用这个来做一个分布查询,那么这个分布查询的好处呢,第一个就是我们可以组合已已有的方法来完成我们这个复杂功能。那第二个呢,我们这个分布查询,它还有一个更厉害的地方。它可以支持,哎,可以可以使用延迟加载。延迟加载那么什么叫延迟加载呢?也就是说我们现在employee对象里边包含了一个DEP。这个属性。而这个部门,哎,我们。哎,我们每次。每次查询employee对象的时候。现在我们做的,哎,你不管是写了几点属性嵌套结果集,还是这个分布查询,哎,我们都是都将部门信息。
01:01
咱们这个将部门信息,我们跟着就一起查出来了。一起。查询出来。而我们希望的事情就是。部门信息。在我们使用的时候。再去查询,这样就非常节省咱们这个数据库了,然后说呢,我们每次要employee对象部门信息,我们不一定每次都用,但是我们每次都查,哎,挺浪费资源的。那么要做这个功能呢,也非常简单,基于我们这个分段查询,什么都不用改。分段查询的基础。也就是我们分布查询的基础之上。加上两个。加上两个配置。加上两个配置就能完成我们这个延迟加载的功能,什么配置呢?来到我们全局配置文件中。
02:00
来把这两个配置写一下这题。第一个配置来到我们这个官方文档,官方文档全局配置往下拉,哎,有一个叫lazy loading。哎,LA懒加载开启,这懒加载延迟加载好把它开启,我们来看一下它的这个解释,哎,说你这个懒加载要开启了的话呢,你这个值哎。关联的这个值可以在使用的时候啊,它会被延迟加载。那么呢,默认是first。所以说呢,我们来写一个处。啊,另外呢,还有一个属性。还有一个属性,这有一个叫aggressive lazy loading,哎,侵入lazy loading,哎,也就是说它要侵入lay loading,如果开启了,也就是说侵入我们这个延迟加载功能了,那么的话呢,我们这些属性将会被完整的加载,在你需要任何一个属性的时候,我们这些属性全部都会被立即加载出来。
03:11
否则这些每一个属性什么时候加载呢?哎,在需要时的时候,哎按需加载,比如说呢,开启的话,我们每一个属性。都会全部直接加载出来,禁用的话,属性就会按需加载,那我们就把它禁用。好。然后这一块配置呢,我们来说啊,在新版的里边这个lazy loading它也是true的,有的同学说,那么既然是true了,我是不是就可以在这儿不写啊,我们还是那句话啊。我们还是显示的。的指定每个每个我们需要更改的。咱们这配置的值,即使它是默认的。
04:01
这样的话呢,为了防止版本更替,哎,这个版本更替一会儿这个属性变为true,一会儿变为false了,有可能会出现一些问题啊。防止咱们这个版本登记。温馨带来的问题。啊,大家注意一下啊,好,我们把这两个加上以后,我再来测试看好啊。我们把这个注掉。我们假设呢,我只要employee对象的last name等等这些跟部门信息无关的。咱们这些值走。哎,我们来看啊。查询circle是不是只发了一条啊,如果我没开启这个东西。没开启这个东西。我即使要了一个跟咱们这个部门信息无关的,咱们这个员工名,我们来看。诶,你看每次查circle都是两条,员工以及部门都会带着。
05:03
好,接下来呢,我们把这个延迟加载一开启效果就出来了,哎,我们只要你不用这个部门信息走。这个部门信息,哎就不会有,哎不会给你查。等你用到的时候。比如我们在这输出,我要用了。Employee,第二,Get de PT,我要用这个部门对象,比如部门对象里边的某一个职啦,或者我直接要这个对象,他采取。好,我们来测试走。哎,大家看在两次打印之间会发送一个SQ语句,也就是说我们按需加载了,你需要的时候我再去查询,而不是每次都查询。按需加载。哎,我们也叫延迟加载,哎,也叫懒加载都一样。
06:01
这是我们非常厉害的啊一个功能。
我来说两句