亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MapStruct @MappingTarget 生成一個空方法

MapStruct @MappingTarget 生成一個空方法

一只斗牛犬 2023-10-12 17:15:37
有一個由 Lombok 形成的目標類型:@Data@Builderclass Target {   private final String a;}并有一個 DTO:@Value@Builderclass DTO {   private final String a;}映射器:@Mapper(componentModel = "spring")interface Mapper {    void update(DTO dto, @MappingTarget Target target);}但是當我編譯時(看到一些與 JDK 11 相關的東西,是的,在我的例子中是 11),編譯后的方法是空的:public void update(DTO source, Target target) {   if (source == null) {       return;   }}并且這只與MappingTarget相關。使用“createFromDTO”的常規映射方法可以正常工作。地圖結構1.3.0
查看完整描述

2 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

Maven只使用Mapstruct處理器,那么你需要在pom.xml中添加Maven插件,配置Mapstruct與Lombok處理器一起使用。


<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-compiler-plugin</artifactId>

    <version>3.8.1</version>

    <configuration>

        <annotationProcessorPaths>

            <path>

                <groupId>org.mapstruct</groupId>

                <artifactId>mapstruct-processor</artifactId>

                <version>${org.mapstruct.version}</version>

            </path>

            <path>

                <groupId>org.projectlombok</groupId>

                <artifactId>lombok</artifactId>

                <version>${org.projectlombok.version}</version>

            </path>

            <path>

                <groupId>org.projectlombok</groupId>

                <artifactId>lombok-mapstruct-binding</artifactId>

                <version>0.1.0</version>

            </path>

        </annotationProcessorPaths>

    </configuration>

</plugin>

您不需要包含 Final 修飾符。如前所述,使用 @Data 而不是 @Value。


在我的測試中,這足以讓 Mapstruct 1.4.1.Final 與 Lombok 和 JDK 11 配合使用。


查看完整回答
反對 回復 2023-10-12
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

好吧,結果變成了龍目島+私人決賽。

Mapper 特別希望 Lombok@Data被聲明@Value(而不是@Builder被 MapStruct 使用),因此,需要final從需要更新的字段中刪除。

奇怪的是,這是通過“google,錯誤并重試”完成的(加上out每次嘗試時都從項目中手動清除目錄,因為 MapStruct 忽略了這些更改),而 MapStruct 從未給出警告(沒有忽略警告或錯誤的標志)被宣布)。


查看完整回答
反對 回復 2023-10-12
  • 2 回答
  • 0 關注
  • 302 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號