0

快速提问:我正在使用Dozer在两个不同的类之间进行映射。在我的目标类(本例中为 A)中,我有一个作为Name对象实例的字段。该对象有两个字符串(姓氏和名字)。这些字符串是通过输入字符串列表并将它们用分隔符连接在一起来构建的。在我的源类(B)中,我有两个列表(姓氏和名字)。所有列表仅包含字符串。

我的推土机映射如下所示:

<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 对象上都定义了 getter 和 setter,但是我没有在 A 类本身上编写 getter 和 setter。

4

1 回答 1

1

发现无法将深度映射与is-accessible属性结合起来。为该类编写一个自定义映射器就可以了。

于 2010-11-03T15:38:37.673 回答