2017-05-17 4 views
0

Est-il possible de mapper un objet à son objet DTO correspondant lorsque les deux appartiennent à une hiérarchie de classes?Mappage d'une hiérarchie d'entités à une hiérarchie d'objets DTO à l'aide d'Orika

Par exemple: j'ai un BaseEntity et quelques ExtendedEntity1 .. ExtendedEntityN

De l'autre côté, j'ai BaseDTO et quelques ExtendedDTO1 .. ExtendedDTON

J'ai une méthode de service:

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

De cette façon, je suis évidemment toujours un BaseDTO, mais je voudrais mapper l'entité au bon type DTO ...

Existe-t-il un moyen d'y parvenir? Je ne voudrais pas utiliser switch ou instanceof solutions de contournement -check ...

Répondre

0

Pas encore découvert une meilleure solution (le cas échéant), donc je vais aller dans cette voie:

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

Je définition un mappings Map où je mets toutes les associations entre les entités et les DTO. Puis dans ma méthode:

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