1

我在使用推土机将 HashMap 映射到 Pojo 时遇到困难。注意:我的 Pojo 中的属性名称没有映射到我填充的 ​​HashMap 中的键值。我正在尝试使用推土机映射文件中的 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. rawDataDozer 会为hashmap中的字段寻找读/写方法,最终会出现映射异常。

于 2011-02-24T00:31:30.210 回答