Try using test.B$C , as in the following example:
<mapping wildcard="false" map-null="false" map-id="test"> <class-a>test.A</class-a> <class-b>test.B$C</class-b> <field> <a>fielda1</a> <b>fieldc1</b> </field> <field> <a>fielda2</a> <b>fieldc2</b> </field> </mapping>
Also note that I changed the second field from fielda1 to fielda2 , it turned out to be a typo in your example.
Note. . Since you set map-id="test" , you must include mapId when calling the map, for example in:
BC destObject = mapper.map(a, BCclass, "test");
I tested and it works correctly:
A.java
package com.test; public class A { private String fielda1; private String fielda2; public String getFielda1() { return fielda1; } public void setFielda1(String fielda1) { this.fielda1 = fielda1; } public String getFielda2() { return fielda2; } public void setFielda2(String fielda2) { this.fielda2 = fielda2; } }
B.java
package com.test; import java.util.List; public class B { private List<C> cList; public List<C> getcList() { return cList; } public void setcList(List<C> cList) { this.cList = cList; } public static class C { private String fieldc1; private String fieldc2; public String getFieldc1() { return fieldc1; } public void setFieldc1(String fieldc1) { this.fieldc1 = fieldc1; } public String getFieldc2() { return fieldc2; } public void setFieldc2(String fieldc2) { this.fieldc2 = fieldc2; } } }
mapping.xml
<?xml version="1.0" encoding="UTF-8"?> <mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dozer.sourceforge.net http://dozer.sourceforge.net/schema/beanmapping.xsd"> <mapping wildcard="false" map-null="false" map-id="test"> <class-a>com.test.A</class-a> <class-b>com.test.B$C</class-b> <field> <a>fielda1</a> <b>fieldc1</b> </field> <field> <a>fielda1</a> <b>fieldc2</b> </field> </mapping> </mappings>
Main.java
package com.test; import java.util.ArrayList; import java.util.List; import org.dozer.DozerBeanMapper; import org.dozer.Mapper; public class Main5 { public static void main(String[] args) throws Exception { List<String> mappingFiles = new ArrayList<String>(1); mappingFiles.add("mapping.xml"); Mapper mapper = new DozerBeanMapper(mappingFiles); A a = new A(); a.setFielda1("fielda1Value"); a.setFielda2("fielda2Value"); BC destObject = mapper.map(a, BCclass, "test"); System.out.println(destObject.getFieldc1()); System.out.println(destObject.getFieldc2()); } }
This is displayed in the console:
... fielda1Value fielda1Value
Jorge ferreira
source share