我在使用dozer将HashMap映射到Pojo时遇到了困难。注意:我的Pojo中的属性名称不会映射到我填充的HashMap中的键值。我正在尝试使用dozer映射文件中的set-method属性将散列键映射到Pojo setter。当我运行下面的代码时,我没有任何异常,但是Pojo没有填充散列中的任何数据。任何建议或反馈将不胜感激。
public class Hotel {
private String companyAssignedId;
public Hotel(){}
public String getCompanyAssignedId() {
return companyAssignedId;
}
public void setCompanyAssignedId(String companyAssignedId) {
this.companyAssignedId = companyAssignedId;
}
}
<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);
答案 0 :(得分:0)
尝试使用this
代替rawData
。 Dozer会在hashmap中查找字段rawData
的读/写方法,最终会出现映射异常。