使用mapstruct转换实体类时发现,转换后的po类数据全部为null,查看编译后的class文件发现,应该转换的目标po类对象并没有转换,而是new了一个新对象,没有给它的属性赋值

二、原因和解决方案

所以又是坑爹的lombok
lombok自动生成的set get 方法与idea工具生成的不同,
手动写下po类的set get 方法
clean之后重新编译,转换后的数据正常,如图所示
在这里插入图片描述

使用mapstruct转换实体类时发现,转换后的po类数据全部为null,查看编译后的class文件发现,应该转换的目标po类对象并没有转换,而是new了一个新对象,没有给它的属性赋值。lombok自动生成的setget方法与idea工具生成的不同,clean之后重新编译,转换后的数据正常,如图所示。手动写下po类的setget方法。所以又是坑爹的lombok。......
今日出现json 转换 实体类 ,出现属性 丢失 问题 ,在不断的de bug 和部署下,终于找到*** 问题 的所在,那就是对应的 实体类 并没有构造方法,需要在 实体类 中添加一个全参数构造方法和一个无参数的构造方法。*** 此前我还一直以为是因为继承类父类的原因导致 数据 填充到父类而没有填充到子类中,后来再详细看一遍代码后发现父类中的属性值是其自动生成的属性。所以查 问题 的方向出现偏差。最终在这个文章下发现解决办法。 https://blog.csdn.net/qinsezaiyu0519/article/detai.
@Override public OrderRateBillDTO toDTO(OrderRateBillDO orderRateBillDO) { if ( orderRateBillDO == null ) { return null;.
mapstruct 是目前最为常用的对象属性 转换 利器,因为我们日常在CURD ,会写很多关于PO转VO、VO转DTO或Req相关的代码。 具体如何 使用 ,网上教程太多了。 对象属性 转换 利器 mapStruct - 简书 这里主要 记录 下遇到的坑,这个坑就是当我们去增加、删除、修改entity(或者称dto)的字段 ,它并不会生成新的实现类,导致在启动项目或者代码运行过程中出错。 解决方案:将生成的实现类删除,然后执行maven clean,再编译maven compile ,这样才能重新生成实现类。 错误解决——使用unittest完成悟空项目【添加日志】+【删除日志】测试,运行结果{‘code‘: 500, ‘msg‘: ‘服务器响应异常‘}、{‘code‘: 500, ‘msg‘: ‘没有权限 叶不修233: 猜测是因为这个demo里主线程后面没有要执行的业务逻辑了,只有一行log日志打印,它打印耗时非常短,所以可能会比最后几个执行的子线程更快地打印出来。 想要解决这个问题,只需要在最终主线程统计总耗时之前加一行代码: Thread.sleep(1); Java——使用多线程从list中不重复地取出数据并进行处理,给多线程任务添加单项任务计时和总耗时 czzing: 为啥我用你的第三个案例执行,latch.await()后面的“任务全部执行完成,总耗时:1574 毫秒”打印在中间,不应该时所有子线程执行完才打印吗,跟你的执行结果不一样