00:00
来,我们接着往后看啊,下一个的话,我们来说一下,呃,Tap al就是我们的别名处理啊,啊,这又是个啥意思呢?来吧,还是先来翻译一下,我们这个官方提供好的是吧,往下看,在这个位置给名处理,OK,来我们一起来看啊,他说什么呀,他说呃,一个什么呀,Java类型的一个什么别名,应该是比较什么呀,简单的,然后呢,稍起来就是什么短的吧,啊就是什么意思啊,你应该为你的这个Java类型呢,去取一个比较精简的一个别名啊,那么这样的话呢,以后你再去使用这个Java类型的时候,你就不必要说去写一个什么for,什么fair的class name,就是一个全类名吗?对吧,你就不必要去写这个全类名了,而是通过我们取好的这个别名呢,给它做一个替换。能理解什么意思了吧,就是我们也知道你写Java的这种类型的话,那你必须要什么全类名才能什么具体的表示它们,那么这个全类名的话呢,我们就啊包名啊,再加上那个类名啊,其实特别长,那么买白支持我们的为这个Java的类型呢,去取上一个比较诶经简的一个别名,那么以后你再去使用这个类型的时候,你就可以使用这个别名来去代替它了,就是这样的一个意思,听懂了吧,OK,来吧,我们一起来看一下啊,回到我们的开发工具中来,第三个我们来讲解一下,好,就是我们的tap al是吧。
01:35
好,这是我们的别名处理,OK,这个东西怎么用呢?首先啊,你要把它给它配到这tap al,然后这里面呢,我们通过一个tap OK来去给他起别名啊,这个tap呢,指定的就是你Java的类型,比如说你看我们在这个映射文件中是不是用到了这个Java的类型啊。是吧,这是一个全类名吧,好,那么现在我就会给它取个别名了啊,你看好了,我把我这个employee的这个全类名呢,拷贝放到我的这个位置啊,然后呢,我们给大家取一个边名,那么大家需要注意了啊,注意就是啊写一下啊jump OK啊这是什么给什么给啊某个Java类型哎,取别名啊取别名啊,那么它里面这个type的话就是什么指定的是什么呀,Java的什么全诶类名OK,那么他这个别名怎么指定啊,这位别名是通过一个叫做Alice,通过它来指定别名,好通过它来指定我们的别名,但是大家需要注意了哈,通过它来指定别名,如果说哎这东西我不写的话,它会有一个默认的别名啊,就是。
02:56
啊,默认的别名呢,就是什么呀?哎,就是我们的类名大小写呢,它是不区分的啊,所以说呢,我们就记住默认的别名呢,就是这个类名,也就意味着这个东西如果你不写的话啊,这个东西你不写,那默认它的别名就是一个employee啊,如果说你写的话呢,你也可以什么去指定成具体的,比如说你就写个E,那么它的别名就是个E,能理解这个意思了吧啊但是呢,我们也不要太精简了啊,你最好呢,还是给他写个什么employee。
03:24
好,那么因为别名不区分大小写,说说你这个大小写都无所谓的理解了吧,好把这个配置上了以后呢,我们再回到这个位置来看一看,那么再去写的时候呢,你看对于这个查询来讲,其实这个位置呢,我就不用这么麻烦了,我就直接写一个employee其实就可以了,理解了吗?这样的话呢,它就能通过这个别名呢去定位到,哦,原来这个别名指向的是我这个尹employ这个类型的,它其实跟你直接写这个全类名的效果是一样的,OK,我们来做一个查询,大家来看一下,好选中执行一下,我们来看这个效果是不是还是一样的。
04:01
没有任何问题吧,OK,好,呃,那么我们再来往后说,呃,现在我们知道了它如何去取一个别名,但是假如说我将来这个实体类是特别特别多的,对不对,特别特别多的,那我需不需要把每一个实体类呢,都放到这个位置,给大家什么去取一个别名啊,这也是比较麻烦的吧,对吧?所以说呢,我再教给你另外一种方式啊,这个我们就不用了,我们用谁呢?我们直接用一个package啊,给大家解释这个package的含义。啊,Package它是一个什么?呃,为指定包下指定的包,以及什么子包下的类批量区别名,好,那么这个位置的话呢,我们就需要给它指定上一个包啊,比如说呢,将来我这个所有的这个实体类呢,我都会放到什么包下面,都会放到我这个病S这个包下面,OK,那我就直接把这个病S这个包呢,给它拷贝到这个地方,那么它就能为这个包下面所有的类,以及这个包子包下面所有的类都能给你取别名了,当然它取的别名就是一个默认别名了,因为你没办法具体指令了,听懂了吧,所以说你看一下,当我把它改成这个以后呢,我们再去测试我们刚刚写好的这个方法,它也是没有任何问题的,因为你默认的别名啊,现在我们是不是就是用的这个默认别名啊,你看这个位置是不是默认别名,看明白了吧,哎,就可以通过这种方式呢,来去给他什么取这个别名了啊好。
05:33
来,这是我们的一个批量区别名,呃,那么现在呢,还有一种情况需要给大家去稍微解释一下啊,假如说哎,我还真就有一种比较特殊的情况,你看了哈,我在这个包上面呢,再去用一个包,我叫bes点萨包,这能看懂什么意思吗?能看懂吧,Bes点包就是一个紫包吗?在这个包下面呢,巧的是我又有一个隐婆衣,这个在家va里面允许吗?允许吧,哎,两个不同的包下面有相同的类,那是可以的吗?好,但是现在你看一下,我在取别名的时候呢,我指定的是这个包啊,那么也就意味着它会问我的这个包以及这个包子包里面的类是不都区别名啊,而你现在这两个类的类名是不是一样的,那么它就会有冲突。
06:18
对吧,所以说你看现在我再去运行的时候,它肯定就已经报错了啊来我选中运行一下。是不是已经报错了对吧?报什么错呢?你可以分析一下说什么呀,说诶我在取名的时候出现了一个异常了,说这个employee已经被什么映射到某个类上了,你看它是不是已经映射到这个类上面了,那么他在为这个子包下面的employee取别名的时候,发现我不能用了,就出问题了。啊,那如果说遇到这种情况,我们应该怎么办呀。好,那首先就要求你在取名字的时候,你就尽量不要一样了。对不对啊,这是一个什么,就是在编码的时候要求的,那如果说我就要一样呢,我也有解决办法,怎么解决呢?那我们就得具体的为其中的某一个来去指定一个别名,怎么指定呢?来你就可以什么,比如说我要为我这个子包下面的这个类呢,去指定一个别啊好,那你在这个上面可以加一个注解,Alice注解好在这个里面呢,给它指定一个别名,比如说你就叫什么呀,就叫emp吧,那么这样的话呢,它的别名就变成emp了,而那个默认的引employ e是不是就能让他去使用了,看到了吧,哎,说这就是一个什么,哎,具体要指定一个便名,好那么把这个加上以后呢,我们还是相同的代码,再来做一个测试。
07:41
好,大家来看看这个结果可不可以了,可以了吧,OK,那么这就是我们别名处理啊,需要给大家去说的,好这个位置呢,稍微再来写一下,好,如果有别名冲突的情况好怎么办呀?哎,可以使用什么呀啊可以使用我们的alla是吧?好Alice注解啊,为什么呀啊其中的某个啊,为什么呀,为这个冲突的类啊具体啊指定别名能理解了吧,这个啊,这就是我们的P别名处理啊。
我来说两句