4
소스에서 대상까지 도저로 단방향 매핑을 시도하고 있습니다.도저 매핑을 사용하여 객체가있는지도에서 Pojo로 매핑
public class Source {
Map<String, String> values;
public Source() {
}
public Source(Map<String, String> values) {
this.values = values;
}
public Map<String, String> getValues() {
return values;
}
public void setValues(Map<String, String> values) {
this.values = values;
}
}
.
public class DozerMapperTest {
private DozerMapper mapper = new DozerMapper();
@Test
public void testName() throws Exception {
String firstname = "Tom";
String lastname = "Hanks";
Map<String, String> input = new HashMap<>();
input.put("firstname", firstname);
input.put("lastname", lastname);
Destination result = mapper.map(new Source(input));
Assert.assertNotNull(result);
Assert.assertEquals(firstname, result.getFirstname());
Assert.assertEquals(lastname, result.getLastname());
}
}
내 매핑 클래스는 다음과 같습니다 :
public class DozerMapper {
public DozerMapper() {
initMapper();
}
private DozerBeanMapper mapper;
public Destination map(final Source input) {
return mapper.map(input, Destination.class);
}
void initMapper() {
BeanMappingBuilder builder = new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(Source.class, Destination.class, TypeMappingOptions.oneWay())
.fields(new FieldDefinition("values.lastname"), "lastname")
.fields(new FieldDefinition("values.firstname"), "firstname");
}
};
mapper = new DozerBeanMapper();
mapper.addMapping(builder);
}
}
을 그러나 모든 나는 또한이 매핑을 시도 :-(작동하지 않는 그의 : 여기
public class Destination {
private String lastname;
private String firstname;
public Destination() {
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
}
내 TestClass에있다
.fields(new FieldDefinition("values").mapKey("lastname"), "lastname")
.fields(new FieldDefinition("values").mapKey("firstname"), "firstname");
나는 봤다, dokumentation과 아무것도 보지 않았다. 아무도 나를 도울 수 없거나 약간의 힌트를 줄 수 있습니까?
발생하는 문제에 대한 자세한 정보와 문제를 해결하기 위해 시도한 사항을 포함하십시오. 감사! –
제 문제는 매핑이 어떻게 필요하며 어떤 도움이되는 문서 나 예제를 찾을 수 없는지 잘 모르는 것입니다. 이 매핑을 사용하는 경우 : 필드 (새 FieldDefinition ("값"). mapKey ("성"), "성"); Destination.lastname에 "{lastname = Hanks, firstname = Tom}"이 포함되어 있으므로 테스트에 실패합니다. Dozer 프레임 워크 디버깅을 이미했는데 그렇게 쉽지 않았기 때문에 실제로 도움이되지 않았습니다. – Phil