mybatis的sql查询有值,map映射也没错,查询中用的也是resultMap,对象接收后返回值确实null
一般情况
1.实体类属性名,sql语句中使用的字段值和创建表的字段值之间的相互对应
2.定义了resultMap却没使用,还是用了resultType
3.特殊情况,在下就是这个原因,以下详情

这里我用了springboot框架,mysql数据库和一个动态sql语法
column属性中写的是下面sql语句中使用的字段值,property属性是对应实体类的属性名,
每一个字段值100%没问题:以下是mapper文件中所使用的sql语句的测试:

和运行结果:

测试方法:

查询的debug日志和结果:

最后发生错误位置

解决方案

原因:
在下觉得从查询结果中就基本上了解了:

致直接看解决方案的朋友:
1.应该是使用了mysql数据库(不确定Oracle数据库是否会出这个问题)
2.应该resultMap手动映射column属性中用了 库名.表名.字段名,
3解决:给字段起别名,重新映射一下
|
|
|
|
|
|
|
|
|
|
背景图片 玛丽莲梦露 虽然很性感,但是我通常都是直接忽视,因为在下的眼中只有代码!
在使用SpringBoot和Mybatis时遇到了resultMap映射问题,详细讲述了实体类属性、SQL字段值与表字段的对应,以及由于在column属性中使用了库名.表名.字段名导致的问题。解决方案是为字段起别名并重新映射。测试表明,该问题可能特定于MySQL数据库。
890





