00:00
啊呃,接下来呢,我们再来说上一个注解啊呃,那我们刚才在说完这个全局的啊策略配置以后呢,哎,其实在这个地方我们看到了它有一个自动处理这个下划线到这个驼峰命名的一个配置,那么我们其实也说过,如果说诶我把它改成false以后,那么对于我们当前这个employee里面的这个last name就是我们这个驼峰命名的,诶这个成员变量,以及我们这个数据库表里面的诶下划线命名的这个字段来讲的话呢,他们两个诶就不可能再什么诶进行这个正常的插入了,好我们可以来试一下。好,还是我们刚刚写好的这个方法。好来这个时候呢,他就跑又抛出了一个异常,那我们来看一下,呃,这个异常的话,其实特别好看的懂,他说诶,我并不知道你这个last name,诶这一个列,那么其实这个原因是什么呢?我们来看一下这条SQL语句,它在进行插入操作的时候,它并没有使用我们数据库里面的那个下划线命名的那个列,而是直接使用的是我们,诶这个实体类中的last name,诶大写的这种形式啊所以说呢,诶就是因为我们把这个全局的。
01:23
这个策略里面啊,有一个处理我们这个下划线到驼峰命名的这个配置呢,给它改成了fast。好,那么呃,像这种情况下,假如说我们把它设置了false以后,我们可不可以通过别的方式来解决呢?啊,那么其实也是可以的啊啊,因为我们在这个2.3版本以后呢,它默认这个值呢,就已经变成true了啊,所以说那个注解来讲的话呢,啊,其实啊就没有什么太大的意义了,但其实这个注解里面呢,还有另外一个功能啊,需要给大家去说一下啊,那我们索性呢,就把它拿出来都给大家去说一说,呃,那是一个什么注解呢?我们来看一下,在这个位置呢,我们还可以去使用一个叫做table field的注解,那么这个很明显,翻译一下就是我们表的field,哎,那就是我们表里面的一个什么列了,好我们点进来看一下,在这个注解里面呢,同样它也有一个这个value,那么这个value的话呢,就是来去指定你当前的,哎,比如说你通过这个注解所标注的这个成员变量,它所对应的数据库里面的那个列名啊,就是通过什么啊,通过我们当前诶这个注解里面的value来去指定的,好除了这个之外的话呢,我们还需要给大家再去介绍上一个啊,就是我们的exist,那么这个是什么意思呢?这个是用来标注一下你当前的,诶这个属性啊,或者是我们这个成员变量,在我数据库表里面有没有对应的字段存在啊,那么这个的话,一会儿我们也来给大家去简单的演示一下这个问题,好那么首先呢,我们先来解决一下啊,当前我们这个下划线啊,到驼峰命名的这个。
02:59
一个问题,好,那么我们只需要在这里面通过value,然后呢,去指定上你数据库里面的,诶,Last sa name,告诉他这是我的成员变量的名字,但是呢,我真正在数据库里面要对应的呢,是一个last_name好,这样的话呢,我们再来做一个测试,好我们来运行一下。
03:27
好,我们能看到解呢,它是没有任何问题的,而且呢,这个conso里面呢,我们也能看到最终的这个结果,以及帮我们这个返回来的这个主见列啊,都是没有任何问题的,然后在数据库里面的话,如果你再去刷新一下的话,诶,你能看到我们还是相同的这个数据啊,又被插进来了一次,好,所说的这个问题呢,我们就解决了,呃,那么这个注解里面的话,我们刚刚还说到了有一个叫做一一。Exist啊,就是有这样的一个属性,那么这个是有啥用呢?我们来看一下啊,它的作用是是否为数据库的表字段啊,默认的是处啊,代表的是存在的,那么false呢,就是不存在的,也就意味着啊,如果说我们不配的话,那么相当于。
04:10
啊,比如说我把这个table field加到这了啊,那么不配的话呢,就说明啊,你这一个成员变量在数据库里面肯定有一个对应的字段是存在的,好那比如说现在我们有这样一种情况,好,我随便呢,在我这个employee里面,我们去加上一个东西啊,比如说我们就加上一个啊字符串类型的,比如说叫做。啊,我们加上一个double吧,啊,我们叫做double类型的啊,比如说有一个工资好,然后呢,我们也需要呢,给它加上这个盖赛的方法。好,呃,加上以后呢。大家注意啊,我们加上以后呢,比如说现在我就啊,先不给他加啊,我什么都不给他加,加上以后呢,我们再回到这个测试方法这。然后呢,呃,我们在这个测试方法里面呢,我们再给它设置一下这个salary。
05:06
好赛我这个salary啊,比如说我们随便写一个,哎2万。好,它是一个double类型的啊,那我们再写成200.0啊,OK,把它设置好以后呢,我们现在呢,再来进行一次这个插入操作啊,我们来看一下会不会出现什么问题。好,大家来看一下这个地方的话呢,它就出现了一个问题,它出现了一个什么问题呢?他说诶你salary这一列呢,我也不知道是吧?啊我也找不到,为什么呢?你看因为他在进行插入操作的时候呢,诶我们这个salary这一列呢,也进入到了我们这个数搜后语句里面,但其实我们在数据库里面呢,我们并没有这一列的存在,好所以说这个时候大家注意了,如果说。哎,如果说这个salary呢啊,它并不是数据库里面的一个字段,那么这个时候呢,我们就可以使用a table field,然后呢,在它里面呢,我们通过exist给它设置一下,比如说我们给它设置为false,这样这设置完以后呢,你再进行插入的时候,它就会把这个字段给你,把这个属性呢给你忽略掉了,它就不会再出现到我们插入的SQL语句里面了,好,我们再来试一下。
06:23
好,变形一下。OK,我们再来看下这个结果,那么现在的话结果就没有任何问题了,然后呢,看我们这个sool语句里面,好,这个时候大家来看一下,它就不会再出现诶我们刚刚的sirary了,好,所以说呢啊最后呢,再来给大家去介绍的这个注解呢,就是我们这个table field啊,那么其实对于我们啊讲的这个处理啊,下划线的这个问题来讲的话呢,其实我们有些时候呢啊也可以不用去使用它啊,因为啊默认情况下的话,这个位置它肯定是可以解决的啊,所以说我们最后呢,还是把它啊改回来好呃,那么另外一个呢,就是我们给大家去说的好table field里面我们可以什么,通过一个exist给大家去设置一下你当前的这个成员变量在数据库里面是否有对应的一个字段,如果说没有的话,那么你一定要把它设置为false。
07:13
好。
我来说两句