Java中mapstruct mapper轉(zhuǎn)換器部分字段轉(zhuǎn)換無(wú)效的解決方案
一、背景描述
springboot 2.1.5 + mapstruct 1.3.0.Final + maven管理工具
接手一個(gè)項(xiàng)目,根據(jù)需求需要對(duì)其接口進(jìn)行修改,對(duì)于兩個(gè)實(shí)體類字段賦值,項(xiàng)目中使用 mapstruct 框架自動(dòng)映射對(duì)應(yīng)字段。對(duì)于其中一個(gè)實(shí)體類中,新增加了兩個(gè)字段,重啟項(xiàng)目使用 swagger 調(diào)用測(cè)試,發(fā)現(xiàn)新增加的字段映射失敗,沒(méi)有把新增的兩個(gè)字段的值賦值過(guò)去,而其他字段則可以正常賦值。

二、問(wèn)題原因
對(duì)于這個(gè)現(xiàn)象,有兩個(gè)原因,以下詳細(xì)說(shuō)明一下:
原因一:映射的字段不一致
首先懷疑兩個(gè)字段需要映射的字段寫的不一致,檢查完之后發(fā)現(xiàn)需要映射的兩個(gè)字段與被映射的字段一模一樣,最終排除掉此原因。
原因2:編譯問(wèn)題
使用 mapstruct 框架,對(duì)于需要映射的實(shí)體類,會(huì)先自動(dòng)編譯好之后存入 target 目錄,而 idea 開(kāi)發(fā)工具的重啟并沒(méi)有清空 target 目錄下已經(jīng)編譯好的文件,所以導(dǎo)致新增加的兩個(gè)字段即使重啟項(xiàng)目也沒(méi)有自動(dòng)映射。
重啟后的項(xiàng)目 target 目錄下,還是之前編譯好的文件,因此新增加的兩個(gè)字段沒(méi)有自動(dòng)映射。
三、解決方案
使用 maven 自帶插件,對(duì)項(xiàng)目 clean 一下,然后再重新啟動(dòng),即可解決此問(wèn)題。

到此這篇關(guān)于Java中mapstruct mapper轉(zhuǎn)換器部分字段轉(zhuǎn)換無(wú)效的解決方案的文章就介紹到這了,更多相關(guān)Java mapstruct mapper轉(zhuǎn)換無(wú)效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatisPlus更新策略導(dǎo)致更新失敗問(wèn)題
這篇文章主要介紹了mybatisPlus更新策略導(dǎo)致更新失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Java避免死鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在有些情況下死鎖是可以避免的。本文將展示三種用于避免死鎖的技術(shù)。對(duì)java避免死鎖的相關(guān)知識(shí)感興趣的朋友一起通過(guò)本文學(xué)習(xí)吧2017-06-06
SpringBoot集成Hadoop對(duì)HDFS的文件操作方法
這篇文章主要介紹了SpringBoot集成Hadoop對(duì)HDFS的文件操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07
高分面試分析jvm如何實(shí)現(xiàn)多態(tài)
這篇文章主要介紹了講解了在面試中jvm如何實(shí)現(xiàn)多態(tài),怎樣回答才能得到高分的問(wèn)題分析,有需要的朋友可以借鑒參考下,祝大家早日升職加薪多多進(jìn)步2022-01-01
淺談java switch如果case后面沒(méi)有break,會(huì)出現(xiàn)什么情況?
這篇文章主要介紹了淺談java switch如果case后面沒(méi)有break,會(huì)出現(xiàn)什么情況?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想小編過(guò)來(lái)看看吧2020-09-09
Mybatis-Plus 條件構(gòu)造器 QueryWrapper 的基本用法
這篇文章主要介紹了Mybatis-Plus - 條件構(gòu)造器 QueryWrapper 的使用,通過(guò)實(shí)例代碼給大家介紹了查詢示例代碼及實(shí)現(xiàn)需求,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09

