场景复现:因为接口返回的数据名称有点不优雅,打算完善一下这部分,遂将对应的对象属性改了一个优雅的名字,mybatis也更新了对应的字段,测试发现,转成JSON对象后,该属性仍然是不优雅的名称。
尝试一:猜想是mybatis没生效
重启工程,再次尝试,没成功。检查了一下数据量查询到的数据,发现正确的,说明通向数据库的这条路是正常的。
尝试二:猜测是JSON转换的时候出来问题
搜索了一下属性不对应时的案例,发现都是主动将属性改成别的名字,没有把不一致的名字改成一致的名字。困惑之际看到一篇文章在测试get/set方法,恍然大悟,Java类只把属性名了,get/set的方法名还是用的旧名字。删除旧的方法,重新生成,结果成功了。
Java实体类的属性不能只看到显式定义的变量,实体类的属性实际上是get/set方法去掉get/set后第一个字母小写得到的属性名,即便是只有get/set方法没有显式对应变量,该规则同样成立。
小心驶得万年船呀~