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

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

(0)

相关推荐

  • 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使用@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

  • 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常见的坑@TableField不生效问题

    目录 Mybatis-plus的坑@TableField不生效 事件回归 @TableField失效的几种情况总结 总结 后记 Mybatis-plus的坑@TableField不生效 事件回归 实体类定义字段中是带下划线的 sql中字段也是带下划线的 mybatiplus默认是打开自动转换下划线  所以导致字段为null  @TableField(value="字段名") 这个注解并不生效 mybatis-plus: #mapper扫描   mapper-locations: cla

  • MyBatis if test 判断字符串相等不生效问题

    目录 MyBatis if test 判断字符串相等不生效 原因分析 解决方法 MyBatis if test 判断字符串相等的坑 1. if 判断字符串 2. if嵌套 MyBatis if test 判断字符串相等不生效 采用 MyBatis 框架操作 MySQL 数据库时,判断传入的字符串 priceFlag 值为"0"时,按照 price 属性降序排列,如下 xml 语句未生效: <if test="priceFlag != null and priceFlag

  • MySQL联表查询基本操作之left-join常见的坑

    概述 对于中小体量的项目而言,联表查询是再常见不过的操作了,尤其是在做报表的时候.然而校对数据的时候,您发现坑了吗?本篇文章就 mysql 常用联表查询复现常见的坑. 基础环境 建表语句 DROP TABLE IF EXISTS `role`; CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_name` VARCHAR(50) DEFAULT NULL COMMENT '角色名', PRIMARY KEY (`i

  • mybatis.type-aliases-package之巨坑的解决

    mybatis.type-aliases-package之巨坑 mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用 例如: <select id="getUsers" resultType="com.majing.learning.mybatis.entity.User">, 又或者你可以通过在application.properties中指定POJO扫描包来让mybatis自动扫描到自

  • C++构造函数一些常见的坑

    文章转自微信 公众号:Coder梁(ID:Coder_LT) 某一天我们接到了一个需求,需要开发一个类似于STL中string的类. 我们很快写好了代码: #include <iostream> #ifndef STRINGBAD_H_ #define STRINGBAD_H_ class StringBad {     private:      char *str;      int len;      static int num_strings;     public:      St

  • Java常见踩坑记录之异常处理

    目录 一.Java异常类层次结构 二.Throwable类常用方法 三.try-catch-finally 四.使用 try-with-resources 来代替try-catch-finally 五.自定义异常 总结 一.Java异常类层次结构 Java中,所有的异常都来源于java.lang包中的Throwable类,它有两个重要的子类,Exception(异常)和Error(错误). Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获.Exception 又可以

  • Java中ReentrantLock4种常见的坑

    目录 前言 Lock 简介 ReentrantLock 使用 ReentrantLock 中的坑 1.ReentrantLock 默认为非公平锁 2.在 finally 中释放锁 3.锁不能被释放多次 4.lock 不要放在 try 代码内 总结 前言 JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局.JDK 1.5 之前当我们谈到锁时,只能使用内置锁 synchronized,但如今我

  • mybatis配置mapper-locations的坑及解决

    目录 mybatis配置mapper-locations的坑 mapperLocations配置失效 问题根源 解决 mybatis配置mapper-locations的坑 很多时候想把xml文件与mapper类放在一起. mapper-locations: com.demo.dao.*.xml 这么配置之后 发现报错找不到xml中id pom.xml配置这句话就可以了!! <build>     <resources>         <resource>      

  • MyBatis一级缓存避坑完全指南

    一级缓存概念 当我们使用Mybatis进行数据库的操作时候,会创建一个SqlSession来进行一次数据库的会话,会话结束则关闭SqlSession对象.那么一个SqlSession的生命周期即对应于Mybatis的一次会话.在Mybatis的一次会话中,我们很有可能多次查询完全相同的sql语句,如果不采取措施的话,每一次查询都查询一次数据库.而一次会话时间一般都是极短的,相同Sql的查询结果极有可能完全相同.由于查询数据库代价是比较大的,这会导致系统的资源浪费. 为了解决这个问题,Mybati

  • Python参数类型以及常见的坑详解

    导语 由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析. 参数类型 首先我们列举一下有关于Python的参数类型,以及实际上的运用和原理. 位置参数(必选参数) 默认参数 可变参数 关键字参数 位置参数(必选参数) 首先是位置参数,同时也被称作必选参数,位置参数很好理解,只要记住这点: 在函数定义时直接给定的此参数名称,调用时按照参数的位置顺序,依次赋予参数值. 示例: def person_info(name, a

随机推荐