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プロパティをどのようにマップするかを定義するためにNullValuePropertyMappingStrategy
(Mapper
アノテーションの一部として)を設定する必要があります。
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]
コメントを追加