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

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

具有@MappingTarget的地圖結構不調用龍目島生成器 build()

具有@MappingTarget的地圖結構不調用龍目島生成器 build()

米脂 2022-09-14 16:42:44
我正在嘗試使用地圖結構映射和龍目島生成器創建補丁方法。但在生成的代碼中缺少調用build()刪除空值的映射器:@Mapper(        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS,        nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)public interface CartMapper {    CartMapper INSTANCE = Mappers.getMapper(CartMapper.class);    Cart cartRequestToCart(CartRequest cartRequest);    Cart patch(CartRequest cartRequest, @MappingTarget Cart cart);}嵌套類具有與 Cart 相同的龍目島注釋:@Builder@AllArgsConstructor(access = AccessLevel.PACKAGE)@Getter@Setter@FieldDefaults(level = AccessLevel.PRIVATE)public class Cart {    Customer customer;    Owner owner;    Integer price;    String voucher;}所有嵌套類都具有與 CartRequest 相同的龍目島注釋,并且結構與目標實體結構相同@Data@FieldDefaults(level = AccessLevel.PRIVATE)public class CartRequest {    CustomerRequest customer;    OwnerRequest owner;    Integer price;    String voucher;}對于方法,一切都很好,在這里調用構建器,也在嵌套方法中調用cartRequestToCart    @Override    public Cart cartRequestToCart(CartRequest cartRequest) {        if ( cartRequest == null ) {            return null;        }        CartBuilder cart = Cart.builder();        if ( cartRequest.getCustomer() != null ) {            cart.customer( customerRequestToCustomer( cartRequest.getCustomer() ) );        }        if ( cartRequest.getOwner() != null ) {            cart.owner( ownerRequestToOwner( cartRequest.getOwner() ) );        }        if ( cartRequest.getPrice() != null ) {            cart.price( cartRequest.getPrice() );        }        if ( cartRequest.getVoucher() != null ) {            cart.voucher( cartRequest.getVoucher() );        }        return cart.build();    }一些提示如何解決這個問題?多謝。
查看完整描述

4 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

龍目島更新 1.18.16.


啟動此版本的工作配置是maven-compiler-plugin



<plugin>

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

    <configuration>

        <annotationProcessorPaths>

            <path>

                <groupId>org.projectlombok</groupId>

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

                <version>0.2.0</version>

            </path>

            <path>

                <groupId>org.mapstruct</groupId>

                <artifactId>mapstruct-processor</artifactId>

                <version>1.4.1.Final</version>

            </path>

            <path>

                <groupId>org.projectlombok</groupId>

                <artifactId>lombok</artifactId>

                <version>1.18.16</version>

            </path>

        </annotationProcessorPaths>

    </configuration>

</plugin>

各部分的順序很重要!path


查看完整回答
反對 回復 2022-09-14
?
MYYA

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

這是地圖結構 1.3.0.Final 中的一個錯誤。

我建議遵循映射結構/映射結構#1742進行修復。

目前的解決方案是通過設置通過SPI完全禁用構建器。NoOpBuilderProvider


查看完整回答
反對 回復 2022-09-14
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

檢查這為我工作,即使只有@Builder和@Getter


查看完整回答
反對 回復 2022-09-14
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

正如格雷戈里·馬祖爾所指出的,這篇文章也幫助了我,但我有Maven構建系統。這是 Maven 的配置版本:


  <dependencies>

    <dependency>

      <groupId>org.projectlombok</groupId>

      <artifactId>lombok</artifactId>

      <version>1.18.12</version>

    </dependency>

    <dependency>

      <groupId>org.mapstruct</groupId>

      <artifactId>mapstruct-jdk8</artifactId>

      <version>1.3.1.Final</version>

    </dependency>

    ...

  </dependencies>

  ...

  <plugin>

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

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

    <version>3.5.1</version>

    <configuration>

      <source>${maven.compiler.source}</source>

      <target>${maven.compiler.target}</target>

      <annotationProcessorPaths>

        <path>

          <groupId>org.mapstruct</groupId>

          <artifactId>mapstruct-processor</artifactId>

          <version>1.3.1.Final</version>

        </path>

        <path>

          <groupId>org.projectlombok</groupId>

          <artifactId>lombok</artifactId>

          <version>1.18.12</version>

        </path>

      </annotationProcessorPaths>

    </configuration>

  </plugin>


查看完整回答
反對 回復 2022-09-14
  • 4 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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