00:01
好来接下来的话我们就来具体看一下,诶刚刚我们抛出来的这个异常啊,那么对于这个异常来说的话呢,啊,我们也不用一行一行去分析了啊,我们就直接去找到它里面最关键的一行,就是我们这个Co back,好呃,那么我们来看一下,呃,首先呢,诶,这是一个啊reflection exception啊是我们这个啊MY里面啊,它抛出来的一个异常,他说啊,我在帮你这个设置employee啊这个类中的ID属性的时候呢,诶就是使用这个值啊来去给你设置的时候呢,出现了一个问题啊,那出现了什么问题呢?说这是一个非法的参数异常啊说你的这个参数类型呢,Miss match啊不匹配好,那么其实我们通过这个Co by的话呢,啊,大概的能猜出来,现在可能出问题的原因呢,啊,就是我们的,哎这个位置。还有呢,诶就是我们表里面的,诶这个ID好就是可能就是这两个地方出现问题了,好呃,那么其实这个问题的话呢,哎,是因为我们在使用MYVE的时候呢,啊,在使用这个my plus的时候呢,我们并没有给人家去指定一个诶叫做组件策略,好那么接下来呢,我们来把这个问题呢给大家介绍一下,好,我们回到这个啊文档里面,呃,它在这个通用c rud里面并没有去描述啊,而是在这个代码生成期里面有一个描述啊,我们来点过来。
01:27
行,我们来看这个位置,他提到了这个组件策略选择,说这个买bet呢,它支持以下四种这个组件策略啊,那么我们可以根据自己的需求呢,来自行去选用,那么我们大概来看一下,诶比如像第一个呢,诶就是ID tap.auto啊,然后它是我们这个数据库的ID自增,好那很明显啊,我们使用的这个买circleql数据库呢,诶应该就是要去使用诶这种这个组点策略的,那么下面的话,像我们这个用户,诶自己去输入ID啊,或者是像这个全局的唯一ID啊,诶等等一些啊,那么感兴趣的同学的话呢,诶你可以自己去分析一下啊。
02:03
好,呃,那么我们知道了他的这个组件策略以后呢,啊,我们再来看一下,因为现在呢,我们并没有去设置这个组件策略啊,所以说呢,他就会使用默认的一种方式来帮我们去生成这个组件,那么也就导致了我们现在的这个问题,好那么接下来呢,我们给大家去说一下,那么如何自己手动的去设置诶这个组件策略,好那么我们就需要再来到这个通用c rud里面,好,我们再来看一下啊,这个位置的话呢,我们提到了一个注解,那么这个注解呢,叫做table ID。那么这个table ID呢,诶其实就是来去,诶啊它里面呢,有一个属性啊,就是可以帮我们去诶指定这个组件的,诶策略类型的,好嗯,那我们就具体来去看一下这个注解,好回到我们的开发工具里面,好control t,我们来去找到这个table it。好,打开。打开以后呢,啊,我们看到啊,它对它的描述是一个表组件标识啊,然后呢啊,这个注解呢,可以加到我们的诶file上面,就是我们这个属性上面啊然后它里面呢,有两个属性啊,一个是value,然后另外一个呢,就是我们的tap,那么这个tap的话呢,我们应该也能猜到了,肯定就是要去指定我们的诶组件的这个策略的,那么这个value是干嘛的呢?
03:24
好,大家注意呃,这个value呢,它是用来指定这个字段值的,啥意思呢?比如说啊,我们的employee里面这个类中呢,我们的这个ID呢,诶,它其实应该对应的就是我们表中的那个ID啊,这个组建列好呃,那么假如说啊。我们表里面呢,不叫做ID,而是叫别的,那么我们是必须要在这个位置呢,哎,就是我们必须要通过我们这个table ID里面的这个Y6呢,来去指定一下你表中的啊,比如说我们看一下,就是必须要指定一下你表里面的,诶这个ID列啊,它到底是就是这个主键列的列名到底是什么好啊,那么其实如果说一样的话呢,我们也可以不用指定啊,因为什么呢?
04:14
哎,因为它在这个地方呢,也有一个介绍啊,我们来看一下啊,在这个位置有一个实体无助解化设置好,就说你这个表字段呢,有如下的一个规则啊,比如说诶你的组件呢叫ID,然后呢,你的表里面呢,啊就是你这个。表里面的组件的叫ID,然后呢,你这个实体类里面的这个属性呢,也叫做ID的时候啊,只要他们的名字是一样的,那么我们就不用再去定了,如果说这两个是不一样的,那么我们就必须要通过value来去制定好,那么我们知道了这些以后呢,来接下来我们就可以去解决我们刚才的那个问题了,那应该怎么去解决呢?我们刚才也看到了啊,你这个table ID呢,就是来加到我们的fail上面了,所以说呢,我们就需要来到我们的中啊,我们在这个上面呢,给它加上一个注解,叫做table ID。
05:05
然后啊,这个里面的话呢,我们可以写一个Y6。好,然后呢,还可以再去写一个tap,好,那么这个tap的话呢,我们很明显要去写的就是这个ID tap啊,这是一个枚举,它里面的话就有一个auto,就是我们的自证,好然后这个value的话呢,如果你要指定的话呢,那么你一定要注意啊,必须要跟你这个数据库里面的这个组件列啊,这个列名呢指定是一样的,就叫做ID,然后呢,人家也说了,诶,比如说你这个实体类中的这个组件啊,这个属性所对应的这个表里面的这个组件列的名字如果是一样的话啊,那么其实这个东西我们就可以把它省略掉了。好,那么这个的话是大家需要去注意的啊呃,我们来简单的给大家去解释一下啊。好,这是我们这个table ID,呃,Value呢,就是来指定好,指定我们表中的这个组件列的好,主键列的这个列名好,如果啊这个。
06:12
实体啊,属性名与这个列名一致啊,可以这个省略啊,不指定好,然后我们这个ta的话就是来指定我们的。好,指定我们这个组件策略的,好,那么我们用的是这个id.auto就是我们这个组件自增的一种方式,好,那我们把这个加上以后呢,我们再来做一下我们刚刚写好的这个测试。OK,我们选中来运行一下。好保存一下。好,呃,现在的话呢,它还是有一个异常啊呃,但是我们来分析一下这个异常,这个异常呢,就已经不是我们刚刚的那个异常了。
07:00
啊,所以说呢,诶应该我们刚才的那个问题呢,诶就已经通过我们的这个注解呢解决了,那么但是呢,现在还有另外一个异常,那么接下来呢,我们再来具体给大家去说一下,诶这个异常又是什么原因导致的?
我来说两句