00:00
下边呢,我们看另外一种办法,就是我们为这个枚举类型哈,去配置专门的类型处理器,就相当于什么呢,你看我们刚才哈。是把address对象经过类型转换器转换成这个字串,现在呢,这就是一个媒体对象,你没娶对象当然可以。经过一个专门的类型转换器转成字符串,再从字符串呢,再回到这个对象,对吧,就是这么一个思路,那然后呢,这个下边配置的这个办法呢,不就和咱们之前使用的address那种呢,不就是一样了吗?那么我们想哈,嗯,首先呢,第一步我们得先有这个类型转换器。这个类型转换器呢,有这样嗯几种这个来源啊,诶比如说呢,这是我们刚才说的这个,你可以是用它,这都是这个,这都是我们买贝蒂斯给我们内置的,诶啊就是说这个无非是这么两种呗,你可以用内置的,也可以是去自定义,哎,就是说呃,内置的除了这个type type handler。
01:24
完了呢,还有这个type。哎,这有这么两种是吧,内置的有这么两种,自定义的话就是你自己写一个呗,那你自己写的话,呃,类型转换器,那这个时候转枚举类型还是转这个address啥的,那就是一样了,其实啊,那就是就是你可以去自定义,嗯,那下一步说这个,呃,这个我们类这个类型转换器准备好了以后怎么去注册,那这个这个如果说真的是你自己自定义的一个哈,那和这个用法哈,注册的用注册的方法和我们前面说的address这个呢,完全就一样,没有任何的区别了,所以说咱们就咱们就不提这个自定义的枚举类型的类型转换器的事儿了啊,咱们就来说这个innu type handler和innu orno type handler这两个东西,这个注册内置啊类型这不叫叫转换器,其实不太,嗯,其实是功能就是类型转换器不。
02:31
不过呢,它叫hand德尔哈,那我们汉德如果翻译的话呢,应该叫翻译成处理器哈,我们那就是咱们就统一都说处理器哈,这个内置的类型处理器,哎,这个怎么样去这个注册,那首先呢,我们想到的哈,就是我们刚才用了一个我们注册type handler的时候呢,用了一个column type这个注解,现在呢,找到我们的user。
03:00
那么user我们能不能在我们这使用个column type呢?啊,当然前提哈,前提是我们把这个呢给它注释掉,因为我们刚才看了哈,你有这个呢,其实就已经管用了啊,咱们先把这一部分先给它注释掉,呃,目前把那个注释掉以后呢,它又是会被忽略的效果,我们现在呢,在这儿写一下,看看如果它能不能用这个column type这个注解。我们叫type handler点,但是呢,这么写上以后呢,你看他报错了啊,编译的时候就报错了,他报了个啥错呢?Type Miss matchch cannot convert from to。也就是说呢,他没办法从这个类型转到这个类型啊,这个咱们就不用考虑这个,它提示的这个错误消息的细节哈,主要是因为啥呢?你这个东西吧,他这有范星。
04:11
他这有泛星,而我们在type handleer这个属性这哈去得这个class对象的时候,没有办法去取,没有办法把范星取到,因为你这么得的这么得哈,它的类型呢。他得到的类型哈,是这个。而我们,而我们type handler这声明的呢,声明的是这个。是吧,所以这个两个它不匹配,它没有办法去这个进行这个类型上的这个适配,所以说呢,他没办法用column type这个注解啊,这个这个事儿是一个是一个泛型在这儿呢,有一个干扰。我们我们把这个错误消息哈,包括这一块呢,我们去拿过来哈,这个是它不能够没办法用我们column type这个注解。
05:12
不能使用。我给他居中下。嗯,往里边整,嗯,哎,所以说这个包括我们呃dino type是一样的,它这也带泛型啊,所以这个也会受到这个干扰,那那如果这这样不行的话呢,那我们就是去可以去这个买贝蒂里边呢,给他注释一下来,去给他这个配置一下,嗯。在媒体类型这里无法使用。
06:05
Column type注解,这个不能用呢,倒不是因为枚举类型不能用,而是呢,你这个类型处理器哈,不能用,这个不能用,买贝蒂内置的这个。出去哈,去这个去注册买菲内置的枚类型,这个不能用。那完了,我们得去买贝蒂斯的配置文件,里边呢,去给他配一下。那就是还是得配这个呗,也是哈,去配这个handler属性,哎,去配我们这个Java type属性啊,这个都是一个套路,我们先配这个innu type handler。
07:02
然后呢,这个Java type呢,我们这么说哈,当你user类里边找到我们呃,Season的时候,诶,你你拿来给我找我这个类型处理器对吧。也是这个一样的道理,我们配了它以后呢,我们再去跑一下,跑一下我们这个测试,我们把这个数据呢改一下。这已经到四了哈,我们改成这个05F是。诶,呃,有抛异常,看看是什么问题哈。啊,你看又是这个问题哈,就多了一个监括号,应该是我们复制全利名的时候,你看。
08:02
这个前面也跟大家说过,这个比较容易犯,这个容易比较犯这个错误哈,这个我们复制这种带权利名的这种类型的时候,往SMR文件里边粘,就容易把这个扇形这部分呢,给它带上啊,这个东西粘到SMR文档里边呢,它会嗯对SMR文档的解析造造成一些这个干扰哈,我们再重新跑一下。好嘞,过了刷新一下。但是这个数据没见了。嗯,我们这儿应该保存的是这个autumn,这个autumn没有进来,哦对了,呃,还有一个什么问题呢,大家看哈,这个也是有一个忽略的,你看我们刚才呢,配了这样一项哈,意思是说呢,让通用map呢,把我们这个枚举哈当成一个简单类型来处理。
09:01
那也就是说呢,目的呢,还是让通用map哈,不要忽略我们枚举类型,嗯,但是呢,现在现在看这个效果吧,它还是给忽略了是吧?诶为啥还是忽略了呢?因为我们这儿哈,缺一个还是对这个在试体类里边呢,对它呢缺缺这个必要的设置,我们在这儿呢,还需要去加一个column注解就是说我现在呢,在这个地方哈,不需要去指定它的啊,不需要指定它类型处理器,呃,不需要指定类型处理器了,但是呢,你默认情况下呢,我们在这儿,我们你看。我们把这个注释掉以后,通用map它就不会去考虑枚举类型了啊,他还是把它忽略了,为了让它不忽略,我们需要加一个column注解啊,所以说呢,你看是一样的,你看跟我们address是一样的,你在买贝蒂里边,你配了这个以后,你在实体类里边呢,是需要结合column这个注解呢去配合啊,配合起来让它生效的。
10:03
我们再改一次啊,这回呢,改成这个零六,我们这回再跑。过来刷新,哎,你看这回这个数据就进来了是吧?哎,那就是说说明确实是这样的哈,就是我们呃,使用XL的这个配置以后啊,需要再加上column注解去进行这个配合,我们在笔记里边来写一下,哎,注册啊,刚才说这个不能使用column type这个注解,哎,需要在配置文件中去配置专门的类型处理器,并在字段上使用column注解。你把S毛里边这个配置呢拿过来,这个配置其实各个标签属性的含义和我们刚才刚才这个dress这个是一样的哈,哎,也是为了大家复习的时候呢,便于对比的话,我们给它全拿过来。
11:29
嗯。好嘞,呃,我们在这儿给大家记一下啊,说这个为什么一定要加这个column注解,加column注解的效果或者说叫作用啊,是让我们通用map。
12:01
不忽略我们的没举例性啊,否则呢,它还是会按照默认的配置,把没举例型的给忽略掉。
我来说两句