mybatis-plus踩坑之下划线驼峰转换方式
问题:对象中包含下划线的字段儿查询不出来
在mybatis-plus中,默认开启了下滑线-驼峰转换
会把数据库字段中的下划线自动转换成驼峰形式,然后去匹配实体类对象的字段
online_num -> onlineNum
如果在一个实体类中存在一个带下划线的字段,查询出来为null
private Integer online_num;
即使用了@TableField()注解去指定映射关系,查询结果也为null
@TableField("online_num")
private Integer online_num;
问题就是出现在了驼峰转换这里,因为已经指明了映射关系,所以把驼峰转换关掉就行:
yml:
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
properties:
mybatis-plus.configuration.map-underscore-to-camel-case=false
但是这里有个问题,你关了自动驼峰转换,所有字段都要通过@TableField()注解去指定映射关系或者在mapper.xml中指定映射关系,这样增加了很多工作量。
所以非必要情况下类字段还是不要用_去命名字段,省得麻烦。
实在不行,如果一定要用下划线字段,
看看具体的原因是什么
- ①如果是序列化或者反序列话需要的话,可以用@JsonProperty和@JsonAlias来解决
- ②如果是toString需要,那就重写一下Object的toString方法
- ③其他情况的话,可以加一个字段比如a_b,就加一个aB字段,然后手写一下a_b字段对应的getter,setter,使它们指向aB字段,如果不想转字段就转对象,查询用一个对象,然后对业务一个对象,查询出来后就转成业务对象,技巧还是很多滴~~
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解Java8新特性之interface中的static方法和default方法
这篇文章主要介绍了Java8新特性之interface中的static方法和default方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-08-08
springboot项目启动的时候,运行main方法报错NoClassDefFoundError问题
这篇文章主要介绍了springboot项目启动的时候,运行main方法报错NoClassDefFoundError问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01


最新评论