2017-05-17 9 views
0

オブジェクトを両方ともクラス階層に属する場合、対応するDTOにマップすることは可能ですか?例えばOrikaを使用してDTOの階層にエンティティの階層をマッピング

:私は、他の側ではBaseEntity、いくつかExtendedEntity1 ... ExtendedEntityN

を持って、私はBaseDTOといくつかのExtendedDTO1を持っている... ExtendedDTON

それから私は、サービスメソッドがあります。

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

このように私は常にBaseDTOを取得していますが、エンティティを正しいDTOタイプにマップしたいと考えています。

これを達成する方法はありますか?私はswitchまたはinstanceof -check回避策を使用するように...

答えて

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())); 
}