Mybatis 实体类映射为null“坑”
问题描述
mybatis +Spring+mysql环境,进行查询,带有下划线的字段,比如create_date,实体中createDate,返回结果为null。
原因
由于 进行查询的时候,返回值是使用的resultType 对应的是实体,而这样create_date与createDate就不能一一对应,框架没那么智能。改为resultMap进行映射即可。
\mybatis-config.xml
<!-- 使用驼峰命名法转换字段。 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类Category匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,建议采用resultMap。