java - 使用 Orika 将实体层次结构映射到 DTO 层次结构

标签 java orika object-object-mapping

当对象都属于类层次结构时,是否可以将对象映射到其相应的 DTO?

例如:我有一个 BaseEntity 和一些 ExtendedEntity1 .. ExtendedEntityN

在另一边,我有一个 BaseDTO 和一些 ExtendedDTO1 .. ExtendedDTON

那么我有一个服务方法:

public BaseDTO getById(String id) {
    return orikaMapper.map(repository.findOne(id), BaseDTO.class);
}

这样我显然总是得到一个 BaseDTO,但我想将实体映射到正确的 DTO 类型...

有办法实现这一点吗?我不会使用 switchinstanceof - 检查解决方法...

最佳答案

尚未发现更好的解决方案(如果存在),所以我会这样做:

Map<Class<? extends BaseEntity>, Class<? extends BaseDTO>> dtoMappings;

我正在定义一个映射Map,其中放置实体和 DTO 之间的所有关联。然后在我的方法中:

public BaseDTO getById(String id) {
    BaseEntity e = repository.findOne(id);
    return orikaMapper.map(repository.findOne(id), dtoMappings.get(e.getClass()));
}

关于java - 使用 Orika 将实体层次结构映射到 DTO 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029734/

相关文章:

java - 如何在 Java Web 服务上接收 SOAP XML

java - 是否有替代语法(或脚本语言)来简化 Maven pom 文件?

java - 如何配置 Orika 以根据上下文将一个类映射到另一个类?

java - 简单测试中的 NoClassDefFoundError

c# - FullAuditedEntity,对象映射器 : CreatorUserId Null when Creating New Entry or Deleting

java - Thymeleaf 模板 - 有没有办法装饰模板而不是包含模板片段?

java - 使用 mockito 库在 java 中模拟最终类

spring-boot - Orika Mapper-MapperFacade初始化后无法注册转换器

java - Orika 响应(包装)对象中实体列表到 DTO 列表的数据映射

java - MapStruct:将多个对象的多个源映射到一个目标