lombok是不是加了@data标签后不应该自己手动再去写tostring方法?

malie0 发布于 10/11 17:16
阅读 1K+
收藏 0

开发过程中发现一个问题,要是用Lombok注释的bean如果自己手写了tostring方法的话,要是bean在增加字段的时候会出现mybatis查询出来的数据没有新加的那个字段,只有在tostring方法里把那个新加的字段加上后才会把那个字段值查出来,这是因为lombok的原因吗?

加载中
0
guuvvv
guuvvv

你自己手写的toString 里当然没有包含新加的字段(因为你写toString 的时候这个字段还没有,toString 里自然也没有)。你说的mybatis 里查出来的没有新字段,是打印出来没有吧,用getter 方法应该是有的,打印走的就是toString 方法。

我也用的lombok @Data ,没有出现这个问题,不过我用的mybatis plus ,底层也是mybatis

m
malie0
我说的是mybatis查询的数据这个新加的字段没有对应匹配上,重新写了tostring方法后就有了,按照我的理解tostring方法不应该影响到查询字段的匹配,只会对方法调用打印出来的信息有影响。
0
Simmy
Simmy

@Data注解,如果你自己重写了toString方法,lombok不会生成toString方法了。

m
malie0
我的问题不是有没有生成toString方法而是数据没查出来
0
Simmy
Simmy

这问题描述得不知所云:

1、数据没查出来,这些跟lombok没有关系。

2、数据没查出来,是指用MyBatis查询数据后映射的POJO对象在toString时没有你想要的字段吗?还是指其它问题,描述具体点大家才可以帮你定位问题,尽量不要用一知半解的错误的结论去描述问题,会误导想帮你的人。

m
malie0
对,就是orm没映射出来,但是我改了toString方法把字段加上去后就能出来了
0
哎码
哎码

看注释,@Data等价于这么一大堆注解,所以不写也可以,但是如果toString有特殊逻辑需要重写的话,覆盖了也没问题

 

m
malie0
其实是可以不写的,代码生成器里模板是这么写了所以生成出来的类就这样了
0
adleypeng
adleypeng

自己手写了 toString ,那么这个类打印的 toString 就是自己手写的。不是框架的问题是你的问题

0
随风香飘飘
随风香飘飘
JSON.toJSONString(this);
0
木九天
木九天

是你的问题,手写toString,lombok就不管了。你不写toString,lombok才会管

返回顶部
顶部