私はサービスレイヤー内でSpring MVCまたは内部オブジェクトマッパーのいずれかによって逆シリアル化されたドメインオブジェクトを持っています。私は1つのフィールドの入力を、Spring MVCを介して逆シリアル化しているときには無視する必要がありますが、サービスレイヤの内部オブジェクトマッパーでは無視しなければなりません。それは可能ですか?オブジェクトマッパーレベルでプロパティを無視しますか?
ヒント/ヒントは非常に高く評価されています。
私はサービスレイヤー内でSpring MVCまたは内部オブジェクトマッパーのいずれかによって逆シリアル化されたドメインオブジェクトを持っています。私は1つのフィールドの入力を、Spring MVCを介して逆シリアル化しているときには無視する必要がありますが、サービスレイヤの内部オブジェクトマッパーでは無視しなければなりません。それは可能ですか?オブジェクトマッパーレベルでプロパティを無視しますか?
ヒント/ヒントは非常に高く評価されています。
Mixin
注釈(documentation here)を使用して行うことができます。あなたは例えば、あなたの内部objectMapper
に@JsonIgnore
フィールドで別のクラスを作成して設定することができます。:
abstract class MixIn {
@JsonIgnore int getXXX();
}
objectMapper.getSerializationConfig().addMixInAnnotations(Model.class, MixIn.class)
。
これをサービスレイヤーobjectMapper
で構成することができます。これは外部objectMapper
がそのフィールドを引き続きシリアル化/デシリアライズできることを意味します。
に感謝します。それは魅力として働く! – gigi2
あなたが助けてくれたら、答えを受け入れたものとしてマークしてください。 –
「@ JsonIgnore」を使用できない理由は何ですか? –
実際には、逆シリアル化のどのパスがトリガーされたかを知る必要がある別の状況があります。それはできますか? – gigi2
例を投稿できますか? –