对Mybatis Plus中@TableField的使用正解

网友投稿 1313 2022-11-08

对Mybatis Plus中@TableField的使用正解

对Mybatis Plus中@TableField的使用正解

目录@TableField的使用1 研究背景和过程2 总结2.1 别名效果 value属性2.2 防止字段持久化 exist属性@TableField的作用@TableField(exist = false)

@TableField的使用

1 研究背景和过程

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

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

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

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

2 总FOzyRSlAlp结

2.1 别名效果 value属性

使用MP自动生成

的方法时,可以用@TableField起别名

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

2.2 防止字段持久化 exist属性

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

@TableField的作用

@TableField(exist = false)

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:智能恒等于推荐系统
下一篇:LibTorch之网络模型构建
相关文章

 发表评论

暂时没有评论,来抢沙发吧~