00:00
好,那我们刚才呢,咱们是通过connection,然后来处理了这个一对多的映射关系。那咱们的一对多的映射关系也可以通过分布查询来实现,对吧?因为分布查询呢,就是一步一步的,然后把咱们所需要的数据都获取到,那我们现在咱们的需求是查询部门信息,以及部门所对应的员工,那我们是不是就可以干什么,先把部门查出来,然后再去查询部门中的员工信息,对不对,好啊。好,那咱们就把这个东西一步一步的来做一下。首先,然后咱们先来写个方法,先查部门,教get dept and e MP by step one。大家注意,我把谁写到前边,然后就是以谁作为主表的,你看我们之前咱们是e p de PT,这是多对一,知道吧,然后现在呢,这是de pd and e,然后这是一对多啊好,括号里面,那我们在这写一个in tIgEr类型的DEPTIDDEPTD,然后咱们给它加上一个a per啊,DEPTD,行,然后这个大家注意这这个咱们这个功能是干什么的,是通过分部查询,然后咱们来查询谁呀,部门以及部门中的员工信息,部门中的员工信息的第一步,第一步。
01:30
第一步OK啊,行,下面咱们先把这个搜狗写出来,大家注意,既然是分部查询,那咱们需不需要去查谁,需不需要把这个员工也查出来呀,不需要,所以说这个搜口语句里面,咱们只需要把部门查出来就行啊好,Result map对吧?然后下面呢,Select,然后星,然后from t_de PT。然后whilew dept_ID等于井号大括号DEPTD行,那现在咱们就把这个部门查出来了,那我们现在把部门查出来之后,我们是不是还要来把部门所对应的员工查出来,那在这咱们就需要用到一个result map,它的ID啊,咱们等于dept and EP,然后result。
02:23
Ma。然后by step OK,咱们需要来处理的类型啊,那肯定是de PT类型,因为de PT里面有一个集合类型的属性,咱们需要处理嘛,对不对,好,把它放在这个位置,然后我们当前咱们需要来处理的这个这个把这两个复制过来啊,然后大家呃,详细咱们自己来写一下吧,然后首先咱们需要来处理的是咱们的部门的一个映射关系,对不对?然后car叫dept_ID然后这个property呢,咱们叫DEP did OK,然后再往下,咱们需要来设置的是普通字段的映射关系,叫DEP Di name,然后在这的话也是de BD name,好,然后下面我们需要通过connection,然后来处理我们的emps这个属性,大家注意这东西在哪呢?啊,在这呢。
03:14
EPSOK吧,啊EPS啊,然后下面呢,我们再往下看,然后我们当前咱们是不是要用分布查询呢,咱们所用到的属性都是一模一样的啊,比如说。我们要来设置咱们的分布查询的circle的唯一标识,然后通过另外一个把咱们当前的emps给查出来,然后我们还需要通过column,然后来设置我们当前查询的分布查询的这个条件啊,把咱们当前查询出来的某个字段来作为我们分布查询的这个条件,好,然后咱们把这个写完之后,我们就可以在EP map里面,然后来写我们当前的分布查询的第二步,那这个时候大家想想你方法的返回值应该是啥呀?
04:00
啊,咱们现在是不是把这一个咱们要查询的这些数据啊,分两步来查了,第一步先查询部门,第二步查询部门中的员工,那一个部门中有几个员工,多个员工,那所以说我们当前咱们要查询的这个,就咱们当前要查询的员工信息,是不是应该是一个集合,因为一个部门里面有多个员工啊,再说了,大家想一下,啥叫分部查询。那不就是将我们当前咱们的第二个circle口查询出来的结果,然后为我们当前的EPS来进行赋值吗?对不对?那你看你的EPS它不就是一个历史的集合吗?所以说咱们之前在做多对一的分布查询的时候,咱们就说过,你当前的分布查询的第二步,它查询出来的结果呀,它这个方法的返回值类型一定是跟我们当前所要赋值的这个属性,然后所要操作的这个属性的类型一定是一模一样的,OK吧?对不对,大家想一下什么叫分布查询,再说一遍啊,然后分布查询就是通过另外一个S口尾区,把它查询出来的结果复制给我们当前的这个属性,对不对?所以说你第二个搜QL语句,它的返回值呀,它查询出来的结果一定是跟我们当前咱们要操作的这一个属性的类型是一样的啊,所以说方法的返回值是类的集合,泛型EP方法名咱们叫get dept and EP by step two。
05:32
好,然后设置完之后,大家说在这咱们应该以什么作为条件啊,你能以员工ID作为条件吗?你想想这两个步骤都是什么?先查部门,查完部门之后,然后再去查部门中的员工,什么叫部门中的员工啊?然后大家大家想一下,咱们这两张表之间的关系是在哪,是在哪里,是在哪张表里面设置的,是在员工表里面设置的,所以你要想来查询我们当前部门中的员工,那是不是应该是。
06:04
以部门的ID,然后来作为条件,然后去我们当前的员工表里面去查询,是不是才可以查询出来当前部门中的员工对不对,所以说大家一定要看好我们在这的条件是谁啊,应该是in tIgEr类型的de p TD,一定要看好啊,我们现在是要查询部门中的员工,所以说我们应该是把部门作为条件在员工表里面来查询,才可以查询出来部门中的员工啊,好,加上一个a per等于DEPID,然后呢,这个功能是干什么的?然后咱们在这把它给复制过来。好,然后这个是通过分部查询,查询部门以及部门中的员工信息的第几步,第二个步骤OK啊,行,然后咱们把它呢,然后来写一下,然后放到我们当前的映射文件中,那大家说这个时候你需要用type吗?Map吗?不需要,因为我们要来查的就是我们当前的一个员工信息对不对?好,ID要跟方法名一致,然后result的type就可以啊,然后把员工信息查出来,然后SQL语句你一定要看好该怎么去写,From t_emp以谁作为条件,第PT_ad作为条件,能看懂吧,这个时候才能将咱们当前部门中的员工给查询出来啊。
07:29
好,那我们当前的这个S口语句呢,咱们也写完了,那下面呢,我们是不是就可以把他们两个给组装起来了,对不对,怎么组装,当前我们的这个S口语句查询出来的结果是不是主要就是来为这个属性进行赋值的,所以说select里面来写的是,你看这属性用的都是一样的吗?所以说select干啥的呀?大家还记得不?然后用来设置咱们的分布查询的circle的唯一标识,那不就是我们当前的这个方法的唯一标识吗?因为这个方法对应的不就是咱们的这个搜口语句嘛,对不对,所以说。
08:03
Copy references,然后把它给放到这儿,然后下面咱们要以谁来作为条件呢?咱们是先把部门查出来,再以部门的DA DEP didd作为条件,去员工表里面来查,然后查询出来部门中的员工,所以说在这应该是第1PT_ID。所以说这个分布查询呢,你看标签属性,咱们用的都是固定的,你关键是你要知道它分几步,每一步都是干什么的,这个大家一定要看好,这个是非常重要的啊好,你只要把这个东西想明白了之后,那这不就是一个模板吗?到时候大家直接把它复制过来对不对?该改的东西改吧改吧就能够完成效果,知道吧?好,下面咱们在这来测试一下,来复制。然后我们下面呢,咱们这样去写叫get dept and e,然后by step stepp OK,然后我们当前要访问的方法啊,然后叫做get de pd and EP best step one,然后里面来写个一就可以啊,那我们当前咱们的de一个部门里面是不是有张三和赵六这两个这个员工信息,那下面咱们来执行一下,大家看一下好使不好使啊。
09:19
然后大家看一下没问题吧,看咱们执行了几个circle,两个circle口,首先第一个circle口。查询部门,第二个根据部门ID查询员工信息对不对,然后大家看一下第一个部门的信息,然后呢,张三和赵六。好,这是我们通过这个分步查询来实现的,来处理的这个一对多的映射关系啊,那当然呢,咱们的分步查询,咱们说它的好处是延迟加载,也就是说我们当前呢,咱们如果在分布查询中,你需要获取哪个数据,它就会查询哪一张表,那这个时候大家来看叫做get de pd name,那我们现在咱们是不是只会去执行查询部门信息的这个SQ委屈对吧,如果说我们现在没有去获取员工信息的话,那他并不会来执行查询员工信息的这个circleq啊好,大家看一下。
10:13
来,你看是不是就只执行了一个circle,那大家还记不记得,如果我现在我要在咱们开启了懒加载延迟加载的环境下,要把我们当前咱们的这个搜口L语句,然后把它给设置为立即加载,大家还记不记得怎么去写啊,是不是在这需要设置一个fe type对不对,Fe type来设置为E是立即加载,设置为lazy是延迟加载。OK吧,好,这是咱们的一个这个。分步查询来处理一对多的映射关系啊,大家注意,这就是一个模板,大家把它给记录下来,然后呢,知道每一个标签什么意思,每一个属性什么意思,到时候大家再去实现其他功能的时候,然后咱们把这些属性啊,把咱们把这些属性值给改一下就可以,OK吧,好啊,行,这是我们当前的一个一对多的映射关系的处理啊,那我们把这个说完之后啊,咱们的result map,咱们就说完了,Result map,大家注意,就是自定义映射,我们讲了它的什么功能,大家想一下,我们讲了它是不是应该主要有三个功能,第一个功能来设置字段跟属性的映射关系,然后第二个功能来处理多对一的映射,然后第三个功能处理一对多的映射。
11:27
当然呢,它不单可以处理多对一,一对一也是一样的,然后呢,他也不单能处理一对多,其实多对多也是一样的,为什么?因为咱们说了,其实咱们说的处理多对一其实就是来处理一个实体类类型的属性,知道吧,对一对应类,对一对应对象,对多对应集合,所以说我们只要是对一的时候,咱们就要在实体类中设置一个,是在实体类中去设置一个对象类型的属性,那咱们就得用association来处理,然后最多的话,咱们就需要在实体类中设置一个集合类型的属性,咱们就得用connection来处理,OK吧,好,这是咱们的result map叫做自定义用上。
我来说两句