Mapstruct 如何使用具有相同源对象的另一个映射器

时间:2021-02-17 12:38:59

标签: kotlin mapstruct

我想知道是否可以使用另一个映射器将相同的对象映射到不同的结果对象?

例如:

data class UserDto (
   val name: String,
   val surname: String,
   val city: String,
   val street: String
)

@Mapper(componentModel="spring", uses=[PersonalDataMapper:class, AddressMapper::class])
interface UserMapper {
   
   fun mapToModel(user: UserDto):User
}

// in another file

data class User(val personalData: PersonalData, val address: Address)

@Mapper
interface AddressMapper {

   fun mapToAddress(user: UserDto): Address
}

@Mapper
interface PersonalDataMapper {

   fun mapToPersonalData(user: UserDto): PersonalData
}

当然实际上我的情况更复杂,我有更多的属性要映射,这只是示例。 我检查了映射器的实现和属性,填充为空,它不使用外部映射器来映射“personalData”和“address”。

那么可以这样做吗?

0 个答案:

没有答案