我有一个带有嵌套对象的DTO,我需要将其转换为一个列表。
下面是总体思路(Kotlin中)。
DTO(源):
class PersonDto {
var name: NameDto,
var otherField: String
}
Target:
class Person {
var name: List<Name>,
var otherField: String
}
其中目标中的name应该只有一个项目:转换后的NameDto。
我知道我可以做这样的事情。
fun nameDtoToNameList(nameDto: NameDto) : List<Name> {
// a bunch of manual code to do the conversion
}
但我想知道是否可以自动进行转换。
理想情况下,会有一个解决方案,可以使用一个NameDtoToName函数,在NameMapper接口中实现。
我已经尝试了好几个小时来解决这个问题,但没有任何进展。任何帮助都将是非常感激的。
你可以在字段上指定@Mapping,并将映射设置为 name.get(0)
.
参考这个链接的语法。https:/mapstruct.orgdocumentationdevreferencehtml#basic-mappings。