Я пытаюсь отобразить хешсет из объекта PO для отображения в объекте модели с использованием отображения бульдозера.Dozer Mapping от HashSet до Arraylist
Это мой источник и класс назначения: -
public class Source implements Serializable {
Set<NoteVariableDefinitionPOImpl> noteVariableDefinitionPO = new HashSet<NoteVariableDefinitionPOImpl>();
}
public class Destination implements Serializable {
List<NoteVariableDefinition> noteVariableDefinition = new ArrayList<NoteVariableDefinition)();
NoteVariableDefinitionPOImpl класс:
class NoteVariableDefinitionPOImpl {
int x; // setter + getter
}
NoteVariableDefinition класс:
class NoteVariableDefinition {
int y ;
// setter + getter
}
Моя конфигурация отображение бульдозер:
<mapping wildcard="false" map-id="NC.Source.Destination" map-null="false">
<class-a>test.Source</class-a>
<class-b>test.Destination</class-b>
<field map-id="NC.NoteVariableDefinitionPOImpl.NoteVariableDefinition">
<a>noteVariableDefinitionPO</a>
<b>noteVariableDefinition</b>
<a-hint>java.util.HashSet</a-hint>
<b-hint>java.util.ArrayList</b-hint>
</field>
</mapping>
<mapping wildcard="false"
map-id="NC.NoteVariableDefinitionPO.NoteVariableDefinition" type="one-way" map-null="false">
<class-a>com.test.po.impl.NoteVariableDefinitionPOImpl</class-a>
<class-b>com.test.model.NoteVariableDefinition</class-b>
<field>
<a>x</a>
<b>y</b>
</field>
</mapping>
Всякий раз, когда я запускаю это отображение, я всегда получаю следующее сообщение об ошибке:
MapId: NC.NoteVariableDefinitionPO.NoteVariableDefinition
Type: null
Source parent class: test.Source
Source field name: noteVariableDefinitionPO
Source field type: class java.util.HashSet
Source field value: [[email protected]]
Dest parent class: test.Destination
Dest field name: noteVariableDefinition
Dest field type: java.util.List
org.dozer.MappingException: Class mapping not found by map-id: SRC-CLASS- com.test.po.impl.NoteVariableDefinitionPOImpl DST-CLASS-java.util.ArrayList MAP-ID->NC.NoteVariableDefinitionPO.NoteVariableDefinition
Как сопоставить с HashSet, чтобы ArrayList в этом случае?
Я новичок в сортировке дозатора и, следовательно, не в состоянии определить собственный конвертер.
бульдозер документация говорит, что он может преобразовать набор в список
бульдозер автоматически сопоставляет между типами коллекций и автоматически выполняет любое преобразование типа.
Следующая отображение коллекции автоматически обрабатывается Dozer: (Это >> все двунаправленная):
Набор в список
Спасибо много. Оно работает. :) – user2332505