我正在尝试使用MapStruct在实体和DTO之间实现映射。要映射的属性之一是“ settlementDate”。它在DTO类中具有相同的名称,并且映射有效,但是在编译过程中出现以下警告:
@Mapping
有什么方法可以使MapStruct在没有警告的情况下处理如此奇怪的命名属性吗?
我尝试使用@Mapping(target = "settlementDate", source = "settlementDate")
SomeData toEntity(SomeDataDTO someDataDTO);
批注明确指定名称,但这无济于事:
StorageTaskEventType.failure
答案 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”开头的名称,否则它可以正常工作