使用MapStruct最新版本1.3.0最终版..
@Mapping(target = "identifier", qualifiedBy = PensionOfferApplicationFilter.Identifier.class)
@Mapping(target = "optionNumber", source = "insurancePeriod", qualifiedBy = PensionOfferApplicationFilter.OptionNumber.class)
@Mapping(target = "creationDate", qualifiedBy = PensionOfferApplicationFilter.CreationDate.class)
@Mapping(target = "editedPieces", source = "insurancePeriod", qualifiedBy = PensionOfferApplicationFilter.EditedPieces.class)
对于“ identifier”和“ creationDate” ..我在自动生成的Impl文件中找不到任何映射。.这就是我所看到的..如何在没有源的情况下传递某些东西?。
if (insurancePeriod == null) {
return null;
} else {
PensionApplication pensionApplication = new PensionApplication();
pensionApplication.setEditedPieces(this.pensionOfferApplicationFilter.editedPieces(insurancePeriod, request, resultDto));
pensionApplication.setPensionCase(this.insurancePeriodPensionHandlerPartyPensionCase(insurancePeriod));
pensionApplication.setOptionNumber(this.pensionOfferApplicationFilter.optionNumber(insurancePeriod));
pensionApplication.setPensionHandlerParty(insurancePeriod.getPensionHandlerParty());
pensionApplication.setType("elaketarjous");
return pensionApplication;
标识符应该映射到PensionOfferApplicationFilter类中定义的此方法
@Identifier
public String identifier() {
return String.valueOf(pensionApplicationRepository.getPensionApplicationIdentifier());
}
public interface MyMapper{
@Mapping(target = "identifier", ignore = true ) /* leave it to aftermapping */
@Mapping(target = "optionNumber", source = "insurancePeriod", qualifiedBy = PensionOfferApplicationFilter.OptionNumber.class)
@Mapping(target = "creationDate", qualifiedBy = PensionOfferApplicationFilter.CreationDate.class)
@Mapping(target = "editedPieces", source = "insurancePeriod", qualifiedBy = PensionOfferApplicationFilter.EditedPieces.class)
Target map( Source source, @Context PensionApplicationRepository repo /* pass the repo as context */);
@AfterMapping
default map( Source source, @AfterMapping Target target, @Context PensionApplicationRepository repo ) {
target.setIdentifier( String.valueOf(repo.getPensionApplicationIdentifier() );
}
}
附带说明:您真的需要所有预选赛吗?这些仅是处理冲突所必需的:当有多个具有相同源类型的组合时,目标类型