0

Orika Mapperを使用しており、次のものがあります。

mapperFactory.classMap(BusinessResource.class, BusinessDto.class)
                .field("content._id", "_id")
                .field("content.uuid", "uuid")
                .field("content.created", "created")
                .field("content.name", "name")
                .field("content.phone", "phone")
                .field("content.fax", "fax")
                .field("content.email", "email")
                .field("content.address", "address")
                .field("content.coordinates", "coordinates")...

なぜ私はそれをこのように使わなければならないのですか?BusinessResoruce のため:

public class BusinessResource extends Resource<Business> {
   private Business content;
   private Link[] links;
}

content.すべてのfieldメソッドに追加されるマッピングによって自動プレフィックスを作成することは可能ですか?

前もって感謝します

更新 #1: すべての手動マッピングを使用して削除しようとしDefaultFieldMapperましたが、成功しませんでしたが、Links オブジェクトはデフォルトで問題なくマッピングされます。このソリューションの主な問題:

suggestMappedField(String fromProperty, Type<?> fromPropertyType)

BusinessResourcecontentとのプロパティを受け取りますlinks。そのため、結果のオブジェクトが空の場合..

4

1 に答える 1

1

Orika は、自動マッピングを行う方法についてヒントを与える方法を提供します: DefaultFieldMapper

クラス マップ レベルで使用することも、デフォルト フィールド マッパーをグローバルに登録することもできます。

次に例を示します。

DefaultFieldMapper myHint = new DefaultFieldMapper() {
public String suggestMappedField(String fromProperty, Type<?> fromPropertyType) {
  return "content." + fromProperty;
}};

デフォルトを作成できます

factory.registerDefaultFieldMapper(myHint);
// OR factory.classMap() ... .byDefault(myHint);
于 2015-05-04T10:15:47.967 に答える