工作问题记录:使用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),未测试