私は Jackson 2 を使用しており、逆シリアル化中のプロパティの動的フィルタリングに苦労しています。
私の考えは、エンティティをロードして変更を読み取ることです:
objectMapper.readerForUpdating(entity).readValue(json)
を使用しようとしていましたが@JsonView
、これは単純なケースで機能します。
EntityA の更新を取得すると、リーダーは EntityB の ID のみを受け入れる必要があります。これは、EntityManager を介して外部エンティティを検索するために使用されます。
を使用@JsonView
すると処理できますが、すべてのユース ケースに対して異なるビュー クラスが必要であり、EntityB のみを更新する必要があります。
class Views {
public static class Update {
}
public static class Display extends Update {
}
}
class EntityA {
@JsonView(Views.Update)
EntityB b;
...
}
class EntityB {
@JsonView(Views.Update)
Integer id;
@JsonView(Views.???)
String value;
...
}
のような逆シリアル化中にプロパティを動的にフィルタリングする方法はあります@JsonFilter
か? BeanDeserializerModifier
で
それを行う古い答えを見つけましたが、もっと良い方法があることを願っていました。