0

簡単な質問:私はDozerを使用して2つの異なるクラス間のマッピングを行っています。宛先クラス(この例ではA)には、Nameオブジェクトのインスタンスであるフィールドがあります。このオブジェクトには2つの文字列(last-とfirstNames)があります。これらの文字列は、文字列のリストを入力し、区切り文字で結合することによって作成されます。ソースクラス(B)には、2つのリスト(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オブジェクトにゲッターとセッターが定義されていますが、クラスA自体にゲッターとセッターを記述していません。

4

1 に答える 1

1

ディープ マッピングをis-accessible属性と組み合わせることはできないことがわかりました。クラスのカスタム マッパーを作成すると、うまくいきます。

于 2010-11-03T15:38:37.673 に答える