我有一个带有嵌套对象的DTO,需要将其转换为列表。
这是一般的想法(在Kotlin中):
DTO(来源):
class PersonDto {
var name: NameDto,
var otherField: String
}
目标:
class Person {
var name: List<Name>,
var otherField: String
}
目标中的名称应仅包含一项:转换后的NameDto。
我知道我可以做这样的事情:
fun nameDtoToNameList(nameDto: NameDto) : List<Name> {
// a bunch of manual code to do the conversion
}
但我想知道是否可以自动进行转换。
理想情况下,将存在一个可以使用nameDtoToName函数的解决方案,该函数将在NameMapper接口(interface)中实现。
我一直在努力弄清楚如何做到这一点,而且还没到任何地方。任何帮助将非常感激。
最佳答案
您可以在字段上指定@Mapping并将映射设置为name.get(0)
。
请参阅此链接以获取语法:https://mapstruct.org/documentation/dev/reference/html/#basic-mappings