工作问题记录:使用Lombok的@Accessors(chain = true)注解后BeanCopier后值为null问题
1 问题描述
项目中使用的MybatisPlus插件的代码自动生成功能,生成的实体类自动标记@Accessors(chain = true)注解,使用原来正常使用的Bean转换工具类查询结果为空,debug了一下,发现是在我自己的Bean转换公具类beanCopier.copy()方法出了问题。
在这里进行写操作时候,if判断不通过,无法写入数据到数组中

获取到的set数组为空

查看转换类的set方法发现有@Accessors(chain = true)注解的实体类里面的set方法有返回值。

正常编写的实体类:
问题就出在返回值类型上,不加@Accessors(chain = true)注解的时候,类的set方法返回值类型是void,而加了注解之后返回值类型变为当前类。
解决方法:
- 将@Accessors(chain = true)注解删除
- 使用工具类手动传入BeanUtils.copyProperties(source, target),未测试
博客探讨了在使用MybatisPlus和Lombok的@Accessors(chain=true)注解时遇到的问题,该注解改变了set方法的返回类型,导致BeanCopier在转换实体类时无法正常工作。解决方案是删除@Accessors(chain=true)注解或者改用BeanUtils.copyProperties()方法进行对象复制。
1436

被折叠的 条评论
为什么被折叠?



