题目省流版:检查一下resultMap中是否直接写的引用类名,而不是包+类名
--------------------------------------------
最近在接手一个别人写的项目后端,在他写的项目基础上进行添加和修改一些基本功能,因为所需要用的数据库与他之前的数据库有一些出入,所以需要进行一些修改,也踩了很多坑,为了防止自己再掉进坑里,所以记录一下,因为感觉这些错误看出来就挺不容易犯的,但就是找不太好找。
---------------------------------------------
首先是mybatis中明明有数据,但是返回到实体类中的属性值就是null;这个就是映射没有弄好,就算上面resultMap都有写好,也要看一下数据库返回值的类型用的是不是resultMap而不是resultType
问题起因是他原来的数据库表中用的column名字和他实体类的名字是一样的,所以使用resultType从根路径.到具体类中是可以的,但是由于我的数据库中和他数据库的column名是不同的,同样对应到实体类中就不同,所以就会出现这个问题,然后我就将通篇的resultType修改为了resultMap
----------------------------------------------
紧接上文
在我修改了resultMap之后,这回直接连空值都不给我返回了,直接进行一整个报错的大动作,
直接报错标题Result Maps collection does not contain value for
然后看了这篇文章说查看一下近期修改的部分,还有可以把resultMap改为resultType,我想,那不对啊,这我刚改过来的,结果就对比我之前用resultMap的项目发现我是原来在resultMap上直接写的实体类名字,而他在用resultType上面写的是包点上实体类,然后我直接把所在包删去,直接引用类名就可以了!