Springboot整合Mybatis字段命名问题

Springboot整合Mybatis字段命名问题

上次在调试微服务时,业务逻辑是要根据一个字段值从表中获取一整条数据,但取出数据时我发现有一个字段的值是空的,其他字段都正常取出了,很奇怪
看了下日志,从表中取出的确实是一条完整的记录,说明sql语句没问题:
在这里插入图片描述
但是取出后放在实体里后module字段就变成null了:

CheckPoint(checkPointId=2, module=null, url=http://172.31.197.98/notice/web/getPopUpMessage, status=1, createTime=Thu Dec 09 14:54:20 CST 2021)

我又仔细对照了一下resultMap也没看出来哪块名字没对上:

<resultMap id="BasicResultMap" type="com.alert.entity.CheckPoint">
    <result column="check_point_id" jdbcType="BIGINT" property="checkPointId" />
    <result column="check_point_module" jdbcType="VARCHAR" property="module" />
    <result column="url" jdbcType="VARCHAR" property="url" />
    <result column="status" jdbcType="TINYINT" property="status" />
    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>

查了半天才知道,因为我在mybatis-config里加了这句:

<setting name="mapUnderscoreToCamelCase" value="true"/>

这句会使数据表中的列名自动映射成驼峰命名,也就是说我的第二列check_point_module在存入实体类时会自动去找名叫checkPointModule的字段去存,而我的实体类里因为图方便就把这列命名为module了,因此也只有这一个字段没有找到对应的存储位置而显示为null。

解决方法

重新命名实体类中字段,严格与数据表中字段命名一致,例:

数据表实力类
check_pointcheckPoint
notice_messagenoticeMessage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值