问题描述:
今天在调试新项目时,日志出现unknown column ‘paper_id‘ in ‘field list‘,这个网络请求是需要新增一条数据到指定的表里。
原因分析:
这个报错是说paper_id这个字段不存在,所以没法匹配上SQL字段,进行正常插入。我的排查思路如下:
1、首先排查下mapper写的SQL的字段是否与实体类的字段名字一致,注意排查大小写;
2、再排查一下数据库中的字段是否与实体类的字段名字一致,注意排查大小写;
以上两项经过排查,都没问题,字段名字都是一致的。后来网上各种查找,终于找到问题所在,原来,默认情况下,Mybatis-Plus会将Java类中的驼峰命名的字段自动映射到数据库表中的下划线命名方式,例如userName会映射成user_name。所以,由此,要么改变数据库中的命名方式,要么在Springboot中加配置修改默认映射规则,开启驼峰映射。
解决方案:
1、修改数据库中的对应字段的命名方式,如userName要改成user_name。(不推荐)
2、Springboot中加配置修改默认映射规则,开启驼峰映射。
后记:当我使用了第二种方法开启驼峰映射后,确实解决了问题。但是之后有一次,竟然又出现这个错误了,驼峰映射貌似失效了。崩溃。。。所有,我再次采取了第三种方式。给映射出现问题的字段加上了这个注解,就没再出问题了。
3、加注解,指定映射字段。