属性名称以“ set”开头时,未映射的目标属性警告

时间:2019-04-26 10:17:21

标签: java mapstruct

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

@Mapping

有什么方法可以使MapStruct在没有警告的情况下处理如此奇怪的命名属性吗?

我尝试使用@Mapping(target = "settlementDate", source = "settlementDate") SomeData toEntity(SomeDataDTO someDataDTO); 批注明确指定名称,但这无济于事:

StorageTaskEventType.failure

2 个答案:

答案 0 :(得分:1)

我会说这是一个错误,名字不是那么奇怪。您能否在Bug跟踪器中创建问题(如果尚未创建)

暂时,您可以尝试和“使用”错误的属性映射。像这样:

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

答案 1 :(得分:0)

您的问题来自名称“ 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”开头的名称,否则它可以正常工作