我使用的是mapstruct 1.4.2.final。我有一个这样的问题:
Business1 id有许多Business2 id关系。我想像RelationDTO一样使用DTO来记录。
Class RelationDTO {
private Long id;
private Long business1Id;
private Long business2Id;
private String createUser;
private LocalDateTime createTime;
}
@Mappings({
@Mapping(source = "business1Id", target = "business1Id"),
@Mapping(source = "createUser", target = "createUser"),
@Mapping(source = "createTime", target = "createTime")
})
List<RelationDTO> converteTo(List<Long> business2IdList, Long business1Id, String createUser, LocalDateTime createTime);
谢谢你的留言。
我将尝试用collection方法的默认实现来解决这个问题,并添加一个映射对象的方法。
@Mapping(source = "business1Id", target = "business1Id")
@Mapping(source = "business2Id", target = "business2Id")
@Mapping(source = "createUser", target = "createUser")
@Mapping(source = "createTime", target = "createTime")
RelationDTO convertToRelationDto(Long business2Id, Long business1Id, String createUser, LocalDateTime createTime);
default List<RelationDTO> convertToRelationsDto(List<Long> business2IdList, Long business1Id, String createUser, LocalDateTime createTime) {
List<RelationDTO> relations = new ArrayList<RelationDTO>();
if (CollectionUtils.isEmpty(business2IdList)) {
return relations;
}
for (Long business2Id : business2IdList) {
relations.add(convertToRelationDto(business2Id, business1Id, createUser, createTime);
}
}
我的DTO中有一个字符串列表,我想把它映射成一个对象列表,在映射器中我使用服务通过这个字符串获取对象,但我有以下错误 考虑声明/实现一个映射方法:“java.util.list map(java.util.list value)”。
...但我得到: 我不知道如何应用这些信息。首先,我认为我需要为列表声明一些额外的映射(在同一个映射器类中),所以MapStruct知道如何像这样映射列表类型的每个字段: ...但我收到错误消息
错误: 我希望在列表中映射相同的字段名,而不需要另一个单独的方法,就像在另一个项目中使用旧的版本时一样。
如何将字符串映射到列表,并将列表映射到字符串? 考虑到我们有以下班级 在Dozer和Orika中,我们可以使用以下代码行轻松映射 如何在MapStruct中进行相同类型的映射?在哪里可以找到有关mapstruct的更多示例?
下面是我的DTO。 源DTO 目标DTO
给定: 我想把所有的车都标出来。将轮胎分为单独的轮胎板。我知道我可以做一个