【发布时间】:2022-08-20 17:40:43
【问题描述】:
我正在使用 MapStruct 将 Page 对象转换为我的应用程序的自定义对象。我正在使用此映射将 Page 对象的内容字段转换为在我的数据模型中找到的自定义对象列表:
@Mapping(target = \"journeys\", source = \"content\")
虽然这可以正常工作并且在内容存在时转换元素,但如果没有Page 内容,这将无法正常工作。看一下代码似乎表明在生成的映射器类中添加了以下检查:
if ( page.hasContent() ) {
List<JourneyDateViewResponseDto> list = page.getContent();
journeyDateViewPageResponseDto.setJourneys( new ArrayList<JourneyDateViewResponseDto>( list ) );
}
添加后,内部对象的映射操作被省略,这意味着我最终得到一个空列表。我不太确定为什么以及如何添加此检查,但我想找到一种禁用它的方法,并最终得到一个空的元素列表。有没有办法使用 MapStruct 来完成?
-
为什么不调用Page.map 方法,该方法返回一个新页面,其内容由函数映射呢?
-
当然,我有这个想法,但在我们的应用程序中有一种模式,我们使用 MapStruct 进行这些类型的操作。最重要的是,我想知道 mapstruct 为什么以及如何在内部添加此检查。请注意,我也在序列化默认的
Page对象,但映射到自定义对象。
标签: spring spring-boot mapstruct