Dozer: Deep Mapping не работает - PullRequest
       3

Dozer: Deep Mapping не работает

0 голосов
/ 25 октября 2010

Быстрый вопрос: я использую Dozer для сопоставления двух разных классов.В моем классе назначения (в данном примере A) у меня есть поле, которое является экземпляром объекта Name.Этот объект имеет две строки (last- и firstNames).Эти строки создаются путем ввода списка строк и объединения их вместе с разделителем.В моем исходном классе (B) у меня есть два списка (last- и firstNames).Все списки содержат только строки.

Мое сопоставление бульдозера выглядит следующим образом:

<mapping>
        <class-a>A</class-a>
        <class-b>B</class-b>
        <field>
            <a is-accessible="true" >name.lastNames</a>
            <b>lastNames</b>
        </field>
        <field>
            <a is-accessible="true">name.firstNames</a>
            <b>firstNames</b>
        </field>
    </mapping>

Однако при использовании вышеуказанной конфигурации я получаю следующее исключение:

org.dozer.MappingException: No such field found class A.name.lastNames

Кто-нибудь знает, можно ли

  • вообще ссылаться на поле таким образом?
  • возможное решение того, что я здесь делаю неправильно?

Для завершения: в объекте Name для обоих списков определены геттеры и сеттеры, однако я не писал геттеры и сеттеры для самого класса А.

1 Ответ

1 голос
/ 03 ноября 2010

Обнаружено, что невозможно объединить глубокое отображение с атрибутом is-accessible.Написание собственного сопоставителя для класса делает свое дело.

...