Java中mapstruct mapper转换器部分字段转换无效的解决方案
一、背景描述
springboot 2.1.5 + mapstruct 1.3.0.Final + maven管理工具
接手一个项目,根据需求需要对其接口进行修改,对于两个实体类字段赋值,项目中使用 mapstruct 框架自动映射对应字段。对于其中一个实体类中,新增加了两个字段,重启项目使用 swagger 调用测试,发现新增加的字段映射失败,没有把新增的两个字段的值赋值过去,而其他字段则可以正常赋值。

二、问题原因
对于这个现象,有两个原因,以下详细说明一下:
原因一:映射的字段不一致
首先怀疑两个字段需要映射的字段写的不一致,检查完之后发现需要映射的两个字段与被映射的字段一模一样,最终排除掉此原因。
原因2:编译问题
使用 mapstruct 框架,对于需要映射的实体类,会先自动编译好之后存入 target 目录,而 idea 开发工具的重启并没有清空 target 目录下已经编译好的文件,所以导致新增加的两个字段即使重启项目也没有自动映射。
重启后的项目 target 目录下,还是之前编译好的文件,因此新增加的两个字段没有自动映射。
三、解决方案
使用 maven 自带插件,对项目 clean 一下,然后再重新启动,即可解决此问题。

到此这篇关于Java中mapstruct mapper转换器部分字段转换无效的解决方案的文章就介绍到这了,更多相关Java mapstruct mapper转换无效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring Boot获取resources目录下的文件三种方式详解
在Spring Boot项目中,经常需要获取resources目录下的文件,这些文件可以包括配置文件、模板文件、静态资源等,这篇文章主要介绍了Spring Boot获取resources目录下的文件的三种方式,需要的朋友可以参考下2023-06-06
SpringBoot @Value注解支持配置自动刷新能力扩展方式
本文介绍了如何通过自定义注解和BeanPostProcessor实现SpringBoot中@Value注解的配置自动刷新能力,主要步骤包括:定义一个支持动态刷新的注解,实现配置的动态变更,以及通过BeanPostProcessor扫描并刷新使用@Value注解的变量2024-12-12
Java8中 LocalDate和java.sql.Date的相互转换操作
这篇文章主要介绍了Java8中 LocalDate和java.sql.Date的相互转换操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-12-12


最新评论