当对象都属于类层次结构时,是否可以将对象映射到其对应的 DTO?
例如:我有一个BaseEntity
和一些ExtendedEntity1
..ExtendedEntityN
在另一边我有一个BaseDTO
和一些ExtendedDTO1
..ExtendedDTON
然后我有一个服务方法:
public BaseDTO getById(String id) {
return orikaMapper.map(repository.findOne(id), BaseDTO.class);
}
这样BaseDTO
我显然总是得到一个,但我想将实体映射到正确的 DTO 类型......
有没有办法实现这一目标?我不会使用switch
或检查instanceof
解决方法......
还没有发现更好的解决方案(如果存在的话),所以我会这样:
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()));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句