如何解决Java中不同的ModelMapper相同实体到DTO的组合
我具有以下实体类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class EDetails {
Long id;
String type;
String comment;
String reason;
String site;
String location;
String secondaryLocation;
Date start;
Date end;
}
和DTO为
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class LDTO {
Long lId;
String lType;
String reason;
String comment;
String inSite;
String mLocation;
Date startDate;
Date endDate;
}
我有对象EDetails
的列表,其中包含五个要在其中进行映射的元素:
- 在前3个对象中,要将
EDetails.location
映射到LDTO.mLocation
。 - 要在前2个对象中将
EDetails.secondaryLocation
映射到LDTO.mLocation
。
我可以按照以下方式在简单的typemap
中映射第一步,但这仅适用于一种映射类型:
modelMapper.typeMap(EDetails.class,LDTO.class).addMappings(mapper -> {
mapper.map(src -> src.getId(),LogsDTO::setLId);
mapper.map(src -> src.getType(),LogsDTO::setLType);
mapper.map(src -> src.getLocation(),LogsDTO::setMLocation);
mapper.map(src -> src.getSite(),LogsDTO::setInSite);
mapper.map(src -> src.getStart(),LogsDTO::setStarteDate);
mapper.map(src -> src.getEnd(),LogsDTO::setEndDate);
});
如何指定具有相同类组合和不同映射的特定映射器,并将其应用于单个对象,如果可以在mapstruct
中提供此实现,那也足够了吗?
modelMapper.typeMap(EDetails.class,LogsDTO::setLType);
mapper.map(src -> src.getSecondaryLocation(),LogsDTO::setEndDate);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。