对Mybatis Plus中@TableField的使用正解

 更新时间:2022年01月15日 10:05:13   作者:一步一结  
这篇文章主要介绍了对Mybatis Plus中@TableField的使用正解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@TableField的使用

1 研究背景和过程

妹纸开发突然发现@TableField失效了,在群里发问。一了解,发现妹纸本意是想用@TabkeField达到类似@JsonProperty的功能。也就是当实体类属性名与数据库列名不一致时,通过此注解实现别名效果。

奇怪的是,这注解一部分成功,一部分失效。具体表现就是有时候可以取到值,有时候又取不到。我点进改注解源码,发现它给value设定的本意是:当驼峰转化未开启时,使用此注解实现驼峰转化。然而,我实际测试表明它其实没这功能。

我信誓旦旦跟妹纸讲,@TableField没有别名的功能。谁知妹纸给我发了一张自动打印sql的截图。里面清清楚楚的显示,MP确实自动生成了AS别名。灵光一闪,是否是Mybatis Plus自动生成的可以别名,而自己写的sql就不行?

不验不知道,一验吓一跳。果然如此,手写的sql都不能自动生成别名,而自动生成的sql查询语句都成功转化了。至此,@TableField注解告一段落。

2 总结

2.1 别名效果 value属性

使用MP自动生成的方法时,可以用@TableField起别名

在xml写sql时,需要用as或者resultMap来转化

2.2 防止字段持久化 exist属性

使用exist属性可以控制类中属性在表中是都一定对应,如果有不存在于数据表的字段,建议都设成fasle

@TableField的作用

@TableField(exist = false)

注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在使用bean的时候,mybatis-plus就会忽略这个,不会报错

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

相关文章

  • Spring中最常用的注解之一@Autowired详解

    Spring中最常用的注解之一@Autowired详解

    本文讲解了Spring中最常用的注解之一@Autowired, 平时我们可能都是使用属性注入的,但是后续建议大家慢慢改变习惯,使用构造器注入。同时也讲解了这个注解背后的实现原理,需要的朋友可以参考下
    2023-01-01
  • 通过Java来测试JSON和Protocol Buffer的传输文件大小

    通过Java来测试JSON和Protocol Buffer的传输文件大小

    这篇文章主要介绍了通过Java来测试JSON和Protocol Buffer的传输文件大小,Protocol Buffer(文中简称Protobuffer)是谷歌开发的新的文件传输格式,需要的朋友可以参考下
    2015-12-12
  • 详解Java信号量Semaphore的原理及使用

    详解Java信号量Semaphore的原理及使用

    Semaphore来自于JDK1.5的JUC包,直译过来就是信号量,被作为一种多线程并发控制工具来使用。本文将详解其原理与使用方法,感兴趣的可以学习一下
    2022-05-05
  • SpringMVC文件上传原理及实现过程解析

    SpringMVC文件上传原理及实现过程解析

    这篇文章主要介绍了SpringMVC文件上传原理及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • MyBatis嵌套查询collection报错:org.apache.ibatis.exceptions.TooManyResultsException

    MyBatis嵌套查询collection报错:org.apache.ibatis.exceptions.TooMany

    本文主要介绍了MyBatis嵌套查询collection报错:org.apache.ibatis.exceptions.TooManyResultsException,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • Java实现银行ATM系统

    Java实现银行ATM系统

    这篇文章主要为大家详细介绍了Java实现银行ATM系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 更改eclipse的JDK版本详细步骤

    更改eclipse的JDK版本详细步骤

    我们用eclipse在做项目的时候会切换jdk版本,本地运行的项目所使用的jdk版本比Linux服务器高(低),需要调低(高)JDK版本,这篇文章主要给大家介绍了关于如何更改eclipse的JDK版本的相关资料,需要的朋友可以参考下
    2023-11-11
  • java对象拷贝详解及实例

    java对象拷贝详解及实例

    这篇文章主要介绍了java对象拷贝详解及实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • 关于多线程常用方法以及对锁的控制(详解)

    关于多线程常用方法以及对锁的控制(详解)

    下面小编就为大家带来一篇关于多线程常用方法以及对锁的控制(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • SpringBoot整合Mybatis与MybatisPlus方法详细讲解

    SpringBoot整合Mybatis与MybatisPlus方法详细讲解

    这篇文章主要介绍了SpringBoot整合Mybatis与MybatisPlus方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01

最新评论