2015-01-29 3 views
0

Есть ли способ сопоставить один список объектов с одним списком объектов ids? У меня есть следующие объекты:Отображение дозатора списков сложных объектов

public class Role implements Serializable { 
    private List<Section> sections; 
    //getters and setters 
    ... 
} 

public class Section { 
    private Long id; 
    //getters and setters 
    ... 
} 

public class RoleDTO implements Serializable { 
    private List<Long> sections; 
    //getters and setters 
    ... 
} 

Как я могу сопоставляют это с бульдозерным XML?

ответ

0

Вы можете использовать XML custom converter

Бульдозер

<field custom-converter-id="mySectionsConverter"> 
    <a>sections</a> 
    <b>sections</b> 
</field> 

Spring XML

<bean id="mapper" class="org.dozer.spring.DozerBeanMapperFactoryBean"> 
    <property name="mappingFiles" value="..." /> 
    <property name="customConvertersWithId"> 
     <map> 
      <entry key="mySectionsConverter" value-ref="..." /> 
     </map> 
    </property> 
</bean> 

Примечание: Я просто в процессе удаления бульдозер из моего приложения, потому что я чувствую, что это усложняет ситуацию. По-моему, простой класс конвертера Java POJO делает гораздо лучшую работу, чем все эти XML, пользовательские преобразователи и весенняя проводка. Я также обнаружил случаи, когда невозможно было повторно использовать значение во вложенном конвертере, что вызвало множественные удары базы данных, которые не требовались с решением POJO.

+0

Спасибо, но я прыгал, что это может быть сделано только с отображением избегая преобразователь. Если я использую конвертер, он будет применяться только к этому отображению? или он будет применяться ко всем сопоставлениям? потому что в другом сопоставлении я хотел бы сопоставить объект Section с объектом Section не Long. – Andres

+0

Как я уже говорил, бульдозер немного мусор/многословный. В идеале вы должны удалить все это вместе !!!. Я думаю, вам понадобится настраиваемый конвертер, который будет состоять из нескольких строк кода (плюс все xub gubbins). Ничто не мешает вам иметь другое полевое сопоставление из раздела в раздел для другого процесса. –

1

Примечание: Это не ответ ... больше желания

Было бы хорошо, если бы бульдозер поддерживается в Groovy spread operator. Это было бы запрашивайте приятную особенность

например:

<field> 
    <a>sections*.id</a> 
    <b>sections</b> 
</field> 
Смежные вопросы