1

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

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

另一方面,我有一个BaseDTO和一些ExtendedDTO1..ExtendedDTON

然后我有一个服务方法:

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

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

有没有办法做到这一点?我不会使用switchinstanceof检查解决方法...

4

1 回答 1

0

还没有找到更好的解决方案(如果存在的话),所以我会这样:

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()));
}
于 2017-05-18T07:43:43.507 回答