7

BeanUtils.copyProperties()すべてのフィールドをマップする必要があり、フィールド名が同じである場合、Bean から dto へのマッピングに使用しています。DozerBeanMapper.map()しかし、この状況で BeanUtils を使用することを考えていなかったので、ソース Bean のすべてのフィールドを宛先 dto にマップする必要はありません 。

したがって、両方の方法に独自の機能があると思いますが、両者の間に類似点はありません。私は正しいですか?私を案内してください。

4

2 に答える 2

9

ModelMapperをチェックしてみてください。名前がまったく同じでなくても、プロパティ (フィールド/メソッド) をインテリジェントにマップします。マップまたはスキップする特定のプロパティを定義するのは簡単で、XML の代わりに実際のコードを使用します。

ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Order, OrderDTO>() {
  protected void configure() {
    map().setBillingStreet(source.getBillingStreetAddress());
    skip().setBillingCity(null);
  }
});

詳細については、プロジェクトのホームページをご覧ください。

http://modelmapper.org

于 2011-06-23T19:01:18.890 に答える
6

ユースケースの mapstruct を検討しました。以下のサンプルを参照してください。

@Mapper
public interface MyMapper {

    MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);

    To to(From from);

}

Selma、Orika、ModelMapper、Dozer、および手動マッピングに対する MapStruct のパフォーマンス比較を次に示します。

手動マッピング vs. Selma vs. MapStruct vs. Orika vs. ModelMapper vs. Dozer

セルマ対MapStruct

于 2016-11-10T22:04:11.513 に答える