在MapStruct版本1.1.0.Final,这是可能的....MapStruct:如何将输入对象传递给表达式?
@Mappings({
@Mapping(target = "transaction.process.details", expression = "java(MappingHelper.mapDetails(request))"),
//more mappings
})
Response requestToResponse(Request request);
这是可能的,因为mapDetails
方法为(由巧合?)插入requestToResponse
方法生成。这就是为什么request
不为空。
现在,由于1.1.0.Final没有与龙目岛合作,我不得不升级到1.2.0.CR2。有了这个版本,mapDetails
将生成一个单独的方法,其中request
未被传递,因此request
现在在此方法中为null,并且我得到了具有该表达式的NPE。 (这是现在的requestToResponse
的子子方法。)
我误用了表达式,它是刚巧巧合工作,还是新版本有bug?如果没有错误,我该如何正确地将request
实例传递给表达式?
感谢,再次工作:) – Bevor
请确保您有这个良好的测试中,嵌套目标属性在1.2.0版本中得到了增强,并且可能会出现无法正常工作的情况(之前也是错误的) – Filip