明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

mybatis 中带下划线变量映射的坑

Posted on 2020-05-11 10:42  且行且思  阅读(5150)  评论(0编辑  收藏  举报

问题描述

    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。