7

ドーザーで定数値を属性に入れる方法を知っている人はいますか? ドーザーのドキュメントでそれについて何も見たことがありません

4

6 に答える 6

3

あなたが何を意味するのか完全にはわかりません - BeanA から BeanB にマップするたびに Dozer に常に BeanB.someField に定数を入力させたい場合は?

このマッピングのカスタム コンバーターを登録することができます。

于 2009-05-13T16:24:07.870 に答える
2

イベントメカニズムを利用してみませんか?

したがって、リスナーの値の設定を行うリスナーを登録できmappingFinished()ます。詳細については、イベントに関するドーザーのドキュメントを参照してください。もちろん、何らかのif ... instanceof条件で設定コードを保護する必要があります。

于 2009-06-17T21:40:20.790 に答える
1

最近のブルドーザーのビルドはこれを容易にします。両方のカスタムコンバーター指定でき、特定のフィールドマッピングのそのコンバーターにパラメーターを指定できます。入力パラメータを受け取り、それを100%の時間出力フィールドに入れる単一の「ConstantConverter」を作成するのは簡単なはずです。

于 2010-02-04T00:51:09.787 に答える
1

1 つの可能な実装は次のとおりです。

public class ConstantsCustomConvertor implements ConfigurableCustomConverter{

    private String pararamter;
    @Override
    public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass, Class<?> sourceClass) {     
        return pararamter;
    }

    @Override
    public void setParameter(String parameter) {
        this.pararamter = parameter;

    }
}

例:

<field custom-converter-param="CONTANT_VALUE" custom-converter="org.yourcompany.ConstantsCustomConvertor">
    <a>a-class-dummyfieldname</a>
    <b>b-class-fieldname</b>
</field>    

このカスタム コンバーターは、b-class-fieldname が String 型であると想定しています。

于 2014-10-15T22:33:37.367 に答える
0

これはModelMapperで非常に簡単です:

ModelMapper modelMapper = new ModelMapper();

modelMapper.addMappings(new PropertyMap<SourceClass, DestClass>() {
  protected void configure() {
    map().setSomeProperty(someConstant);
  }
});

この例はにマップsomeConstantされDestClass.somePropertyます。

その他の例とドキュメントは、http: //modelmapper.orgで確認できます。

于 2011-06-29T21:54:18.123 に答える