在使用SpringBoot+MybatisPlus写后端程序时,前端发过来的请求在后端处理时报错了。
遇到报错的详细信息如下:
在网上搜索了半天,网上大部分给出的办法是核对方法名和 mapper XML 文件里对应的函数的id 是不是一致(即是否存在拼写不一致问题)。
但是我调用的是库方法,只需要继承 BaseMapper 就可以用,根本不需要在 mapper XML 文件里写具体的 SQL语句。实际上我根本就没创建对应的 mapper XML 文件(其他的 select、insert 库方法运行的都没问题),我就非常纳闷了。
后来在Mybatis官网上了解:
使用deleteBatchIds()库方法的前提要保证实体类主键对应的成员变量加上@TableId注解
经过排查,确定原因为:在Admin实体类文件里,主键对应的成员变量没有加 @Tableld 注解。
这是主键注解,没有这个注解 mybatis 就不知道谁是主键,在调用 deleteBatchlds 这种依赖主键的方法时,他就会去 mapper XML 文件里寻找对应的方法,找不到就会报上述错误。至此问题解决。
如果觉得对你有帮助,请不要吝惜一个赞哦,让更多需要帮助的人看到吧(#^.^#)