Mapstruct:ソースがNullの場合にターゲット文字列をデフォルトで空の文字列にする方法(両方のフィールドの名前とタイプが同じ)Java / Spring

ブランド :

2つのオブジェクトソースとターゲットがあり、どちらも同じフィールド名とタイプです。

ソースフィールドがnullの場合、ターゲットを ""(空の文字列)にしたい

私のインターフェイスマッピングは次のようになります(これは2つのフィールドにすぎません。

@Mapper(componentModel = "spring", nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT)
public interface MyMapper {

@Mappings({
    @Mapping(target="medium", defaultExpression="java(\"\")"),
    @Mapping(target="origin", defaultExpression="java(\"\")")
 }) 
public Target mapFrom(Source source)

Sourceに値がある場合はコピーして、ソースでnullの場合はターゲットで ""にする必要があります。

Mapstruct-1.3.0はすべてをnullのままにしているようです。

何か案が?すべてに対してデフォルトを空の文字列にしたい

マイケル:

nullプロパティをどのようにマップするかを定義するためにNullValuePropertyMappingStrategyMapperアノテーションの一部として)を設定する必要があります。

NullValuePropertyMappingStrategy.html#SET_TO_DEFAULTを参照してください

のデフォルト値はStringです""明示的に定義する必要はありません。

したがって、マッパーは次のようになります。

@Mapper(
    componentModel = "spring", 
    nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT, 
    nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.SET_TO_DEFAULT
)
public interface MyMapper {

    public Target mapFrom(Source source);

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ