Mybatis-plus的坑@TableField不生效
事件回归
实体类定义字段中是带下划线的
sql中字段也是带下划线的
mybatiplus默认是打开自动转换下划线 所以导致字段为null
@TableField(value="字段名")
这个注解并不生效
mybatis-plus:
#mapper扫描
mapper-locations: classpath*:mapper*.xml
configuration:
# 关闭自动驼峰转换
map-underscore-to-camel-case: false
# 打印sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
@TableField失效的几种情况总结
总结
1、只加了@TableField,没有实现MetaObjectHandler
2、MetaObjectHandler实现类没有加到spring容器中
3、被@TableField标记的字段,没有get、set方法
4、被@TableField标记的字段的类型,与绑定时传入的类型不一致,比如字段类型为String,传入Integer,这种情况会失效
后记
我觉得mybatis plus在字段绑定这里做的有点不友好,只按照正确逻辑处理,没有增加错误反馈、以及反例报错
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。