Mybatis-plus常见的坑@TableField不生效问题

目录
  • Mybatis-plus的坑@TableField不生效
    • 事件回归
  • @TableField失效的几种情况总结
    • 总结
    • 后记

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在字段绑定这里做的有点不友好,只按照正确逻辑处理,没有增加错误反馈、以及反例报错

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2022-01-12

MybatisPlus中@TableField注解的使用详解

实现 官方文档说明: com.baomidou.mybatisplus.annotations.TableField TableField注解新增属性 update 预处理 set 字段自定义注入 (讲解:比如我们使用mybatisplus自带的insert()方法向数据库插入数据时,假设我们给age字段赋值为1,但是我们在age字段上的@TableField注解里面加了update="%s+1",那么真真插入到数据库的值就是age=2,而不是age+1了) 例如: @TableFie

Mybatis-plus使用注解 @TableField(exist = false)

当表中午字段,但是实体类中需要这个成员变量时怎么办,可以使用mybatis-plus中@TableField(exist=false) 如下: import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomi

Mybatis Plus使用@TableId之坑及解决

目录 Mybatis Plus使用@TableId之坑 1. TableId 可选类型 2. @TableId(value = "id",type= IdType.AUTO) 3. @TableId(value = "id",type= IdType.ID_WORKER) Mybatis Plus TableId无效 Mybatis Plus使用@TableId之坑 1. TableId 可选类型 不添加注解时,默认使用ID_WORKER(3) public enu

Android 弹出软键盘所遇到的坑及解决方法

demo下载 重要代码: //1.此layout作为最外层的layout: //2.设置需要调整的view: setAdjustView(View view); //3.如果需要控制输入框的显示与隐藏,可以实现OnInputViewVisibleListener接口: public class SoftInputAdjustLayout extends RelativeLayout { private static final String TAG = SoftInputAdjustLayout

MySQL5.7中的sql_mode默认值带来的坑及解决方法

在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本.作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode optimizer_switch 本文主要内容是MySQL升级到5.7版本之后,由于默认的 sql_mode 值带来的坑以及对应的解决方案. 案例一:ONLY_FULL_GROUP_BY 问题描述 MySQL版本从5.6升级至5.7之后,部分SQL执行报错,报错信息如下: ERROR 1055 (42000): Expression #3 of X

浅谈vue引入css,less遇到的坑和解决方法

在使用vux开发手机页面时,引入vux的公共样式less一直报错,通过各种百度,Google都没有解决,走了很多弯路.最后才发现钻牛角尖了,可以换一种方法引入. 1.报错的使用:在App中 @ ./~/css-loader?{"minimize":false,"sourceMap":false}!./~/vux/src/styles/reset. less 3:10-115 @ ./~/css-loader?{"minimize":false,&

基于IOS端微信分享失效的踩坑及解决方法

最近的一个公众号是基于vue的spa应用,在接入微信分享和微信语音的时候出现了:在Android上一切正常,但是在ios端调用wx.config的时候总是失败,去翻了官方文档也并没有找到解决方案,最后在测试中发现是因为初始化的时候传入的URL的问题.具体过程如下: 微信config接口配置,官方文档如下: 所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支

ant-design-vue按需加载的坑的解决

问题 在vue-cli4.x中按需加载ant-design-vue,在编译时报错,错误如下 原因 ant-design-vue使用less预处理器.在less3.0版本以前,javascriptEnabled属性默认为true,3.0以后默认为false.地址 目前项目中less版本为3.0.4,所以在编译中会报错 解决办法 第一种办法,在vue.config.js中添加如下配置 css: { loaderOptions: { less: { javascriptEnabled: true }

pip安装tensorflow的坑的解决

在我看来学习不难,配置一些环境真的很痛苦,之前的caffe配置,一口老血.. 不过用Python遇到了pip安装,真的赞,可是在用pip装tensorflow,竟然抛错?????黑脸.. 一.一开始中途报错,可能是网问题,所以报times out(猜测) 后来发现可能是pip命令不对 我是cpu,应该选2,之前写的1. 二.后来直接pip install tensorflow,tensorflow装完,自动装numpy却报错了.因为我之前自己用了numpy,早就装了.而每个tensorflow都

mybatis中使用oracle关键字出错的解决方法

发现问题 最近发现在mybatis中如果使用的字段是Oracle的关键字,会出现错误,通过查找相关的资料终于解决了,下面来一起看看详细的解决方法: 解决方式 可以使用resultMap** 示例代码 <!-- 预约日历用 --> <resultMap id="FullDateResultMap" type="com.haier.hrssc.reserveschedual.dto.FullcalendaDTO"> <id property

vue监听scroll的坑的解决方法

最近开始用vue写个小项目,踩了不少坑,这里记录下爬坑过程,给有同样经历的人帮助. 问题 今天想在vue的项目里面用下拉加载,然后就直接写了: 但是我发现我切换路由以后依旧其他页面也触发了scrollHandler函数,然后我想到使用了vue-router做的spa项目,window对象不变的,所以需要在每次使用后销毁. 解决办法 我回去看了下vue文档的生命周期,看到了destroyed,然后直接在这个周期内销毁就可以了. 使用throttle出现的新问题 下拉加载一般需要配合throttle

深踩Android Studio 缓存的坑及解决方法

本文记录的是今天在群里提到的昨天所踩的一个坑,有关 AndroidStudio 缓存的. 先说一下背景. 我负责的一个项目,对一个图表库有外部依赖.这个图表库是我在维护的,由于新功能在开发中,所以我就使用了 SNAPSHOT 版本发布到 OJO(oss.jfrog.org) 上.我在项目中刚更新了依赖,忽然想到还少几个 API,于是发布了 SNAPSHOT 版本. 故事就这样开始了. 这时候回到 AndroidStudio 再去 Sync Project with Gradle Files 肯定

Centos7安装docker compse踩过的坑及解决方法

一.安装方式 1.官方安装方式 sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 给docker-compose执行权限 docker-compose --version 测试安