1

dozer を使用して HashMap を Pojo にマッピングするのに問題があります。注: 私の Pojo の属性名は、入力した HashMap のキー値にマップされません。dozer マッピング ファイルで set-method 属性を使用して、ハッシュ キーを Pojo セッターにマップしようとしています。以下のコードを実行すると、例外は発生しませんが、Pojo にはハッシュからのデータが取り込まれません。提案やフィードバックをいただければ幸いです。

ポジョ:

public class Hotel {

private String companyAssignedId;

public Hotel(){}

public String getCompanyAssignedId() {
    return companyAssignedId;
}

public void setCompanyAssignedId(String companyAssignedId) {
    this.companyAssignedId = companyAssignedId;
}

}

マッピング XML:

<mapping>
   <class-a>com.reardencommerce.platformsvc.hadoop.dto.Hotel</class-a>
   <class-b>java.util.Map</class-b>

   <field>
        <a set-method="setCompanyAssignedId">hotel</a>
        <b key="COMPANY_ASSG_ID">rawData</b>
   </field>
</mapping>

実行コード:

DozerBeanMapper beanMapper = new DozerBeanMapper();
List<String> mappingFiles = new ArrayList<String>();
mappingFiles.add("dozer-test.xml");
beanMapper.setMappingFiles(mappingFiles);
Map<String, String> rawData = new HashMap <String, String> ();
rawData.put("COMPANY_ASSG_ID","12345");
Hotel hotel = new Hotel();
beanMapper.map(rawData, hotel);
4

1 に答える 1

1

thisの代わりに使ってみてくださいrawData。Dozer は、ハッシュマップ内のフィールドの読み取り/書き込みメソッドを探しrawData、マッピング例外で終了します。

于 2011-02-24T00:31:30.210 に答える