1. 发现问题
现在已经用Spring Boot整合了项目,并且开启了延迟加载。在进行查询时,发现有几个对象属性没有被查询出来
2. 推敲尝试
经过反复推敲,发现sender(User类)和剩余两个属性的区别,就在于:
(1) sender(User类)对应的userMapper.xml的方法返回值采用了resultMap
(2) 剩余两个属性对应的mapper.xml的方法返回值都只用了resultType
于是尝试着在剩下两个属性所在的mapper.xml中编写了resultMap,成功返回
3. 原因
基于上述尝试,最终回忆起原因:
属性名和数据库字段不一致
如果只用resultType,数据库能正常查询,但无法正确映射,无法将查出的数据封装成对象,自然就查出了"null"
4. 解决方案
在没能查出数据的两个类对应的mapper.xml中,编写resultMap,并且让查询方法返回这个resultMap:
5. 结语
及时复习真的很重要,学得快、忘得也快。多加实践,让自己更加熟练。