Я использую бульдозер для сопоставления между моими объектами модели и моими DTO. Теперь я сталкиваюсь с проблемой, что мне нужно сопоставить некоторые свойства classA.classC с различными свойствами classB, но сначала мне нужно проверить на несогласованность, потому что, если я не classC будет вызывать исключения и отображение не будет работать.Мне нужно проверить достоверность данных до глубокого картографирования с помощью бульдозера, не так ли?
Так предположит, что у меня есть:
class ClassA {
private String name;
private ClassC c;
public ClassC getC() throws ValidityException;
}
class ClassB {
private String code;
private Integer value;
}
class ClassC {
private String name;
private Integer value;
// Getters & Setters below
}
Так что теперь я хочу, чтобы отобразить так:
<mapping>
<class-a>ClassA</class-a>
<class-b>ClassB</class-b>
<field>
<a>c.name</a>
<b>code</b>
</field>
<field>
<a>c.value</a>
<b>value</b>
</field>
</mapping>
, если доступ к экземпляру ClassC от экземпляра CLASSA бросает исключение, мне нужно будет карта нуля для обоих свойств b. Из того, что я читал, я предполагаю, что я должен использовать CustomConverter, чтобы получить доступ к экземпляру ClassC, чтобы исключить и отобразить null в этом случае, но не знаю, как я могу реализовать такой конвертер.
Любой может дать мне несколько идей о том, как это можно реализовать с помощью Dozer?
Да, я исправлю это, спасибо, к несчастью, это не изменит многие понятия в проблеме. –
По умолчанию dozer имеет map-null = "true". Поэтому, даже если атрибуты sorce равны нулю, они будут отображаться. Поправьте меня, если я что-то пропустил. –