0

Dozer マッピングを使用しています。私は2つのpojo1とpojo2を持っています。pojo2 にマップされる pojo1 の値。Pojo1 には 3 つのプロパティがあり、Pojo2 には 4 つのプロパティがあります。pojo1 から pojo2 に 3 つのプロパティをマップできますが、4 つ目のプロパティをマップするには、pojo1 にプロパティがありません。4 番目のプロパティをマップするには、pojo1 から値を取得できません。直接、Enum から値を取得する必要があります。マッピングファイルを介してプロパティに価値を与えることは可能ですか?

pojo1 の 4 番目のプロパティからではなく、直接 enum からの値

ありがとう!

4

1 に答える 1

1

私の知る限り、これは便利な方法では不可能です。この atm を行う唯一の方法は、カスタム コンバーターを使用するか、POJO の 1 つを変更することです。

カスタム コンバーターを使用すると、pojo1.field3 を pojo2.field4 にマップするだけです。コンバーターは pojo1.field3 を完全に無視し、pojo2.field4 を列挙値に設定するだけです。

もう 1 つの解決策は、pojo1 を変更して、常に列挙値を返す field4 を追加することです。

3 番目の解決策は、pojo2 を変更して、デフォルトのコンストラクターで field4 を設定することです。デフォルトのコンストラクターを変更できない場合は、カスタム create メソッドまたはカスタム Bean ファクトリを使用して同じことを実現できます。

私はドーザー マッピングを何度も行ってきましたが、これにももっと便利なソリューションが必要です。残念ながら、ATMはないと思います。

それがあなたにとってどのように機能するか教えてください!

于 2011-11-23T12:44:54.177 に答える