2010-10-25 139 views
0

快速问题:我正在使用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对象上为这两个列表定义了getter和setter,但是我没有在类A本身写入getter和setter。

回答

1

发现无法将深度映射与is-accessible属性结合使用。为这个类写一个自定义的映射器会有诀窍。