zrobiłem go za pomocą Java 8 i dozer 5.5. Do mapowania nie potrzebujesz żadnych plików XML. Możesz to zrobić w Javie.
Nie potrzeba żadnego dodatkowego odwzorowanie dla list, Jedyne czego potrzebujesz to
trzeba dodać do listy jako pola w mapowaniu
. Zobacz przykładową konfigurację komponentu bean poniżej.
klasa konfiguracja Wiosna
@Configuration
public class Config {
@Bean
public DozerBeanMapper dozerBeanMapper() throws Exception {
DozerBeanMapper mapper = new DozerBeanMapper();
mapper.addMapping(new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(Answer.class, AnswerDTO.class);
mapping(QuestionAndAnswer.class, QuestionAndAnswerDTO.class).fields("answers", "answers");
}
});
return mapper;
}
}
klas // klasa Odbierz i AnswerDTO mają te same atrybuty
public class AnswerDTO {
public AnswerDTO() {
super();
}
protected int id;
protected String value;
//setters and getters
}
// klasa QuestionAndAnswerDTO ma listę odpowiedzi
public class QuestionAndAnswerDTO {
protected String question;
protected List<AnswerDTO> answers;
//setters and getters
}
// Następnie korzystać z programu odwzorowującego w swoim kodzie, przeprowadź autouzupełnianie go
@Autowired
private DozerBeanMapper dozerBeanMapper;
// in your method
QuestionAndAnswerDTO questionAndAnswerDTO =
dozerBeanMapper.map(questionAndAnswer, QuestionAndAnswerDTO.class);
Mam nadzieję, że pomoże to komuś zastosować się do metody Java zamiast XML.
Adres wątku zmieniono na: http://sourceforge.net/projects/dozer/forums/forum/452530/topic/3017095 (na wszelki wypadek, gdy zdecydują się usunąć automatyczne przekierowanie) – Mark
@Gnoupi Dzięki za dodanie linku –
Teraz na http://sourceforge.net/p/dozer/discussion/452530/thread/012023da/ – dschulten