【问题标题】:Unmapped target property warning when property name starts with "set"属性名称以“set”开头时未映射的目标属性警告
【发布时间】:2019-09-15 20:11:50
【问题描述】:

我正在尝试使用 MapStruct 实现实体和 DTO 之间的映射。要映射的属性之一是“settlementDate”。它在 DTO 类中具有相同的名称并且映射有效,但在编译过程中我收到以下警告:

/path/to/project/SomeDataMapper.java:15: warning: Unmapped target property: "tlementDate".
    SomeData toEntity(SomeDataDTO someDataDTO);

有没有什么方法可以让 MapStruct 处理这样一个命名怪异的属性而不发出警告?

我尝试使用@Mapping 注释来明确指定名称,但这没有帮助:

@Mapping(target = "settlementDate", source = "settlementDate")
SomeData toEntity(SomeDataDTO someDataDTO);

【问题讨论】:

    标签: java mapstruct


    【解决方案1】:

    我会说这是一个错误,名字并不奇怪?。您能否在错误跟踪器中创建一个问题(如果您还没有)

    暂时您可以尝试“使用”错误的属性映射。比如:

    @Mapping(target = "tlementDate", source = "settlementDate")
    SomeData toEntity(SomeDataDTO someDataDTO)
    

    【讨论】:

    【解决方案2】:

    您的问题来自名称“settlementDate”,显然从生成以来它被认为是一个设置器而不是一个变量。 所以我建议你:

     @Mapping(target="settlementDate",source="settlementDate", qualifiedByName="methodName")
     SomeData toEntity(SomeDataDTO someDataDTO);
    
     @Named("methodName")
     default ... methodName2(... settlementDate){
         //your transformation to get settlementDate of SomeData from settlementDate from SomDataDTO
     }
    

    我没有尝试使用以“set”开头的名称,否则它可以工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2021-10-06
      • 2015-06-09
      相关资源
      最近更新 更多