に基づいて取得:春ジャクソンJsonViews - フィールドは、私はフィールドの数と実体を持って、JsonViewで指定したJsonView
public class Client {
@JsonView(Views.ClientView.class)
@Column(name = "clientid")
private long clientId;
@JsonView(Views.ClientView.class)
@Column(name = "name")
private String name
@JsonView(Views.SystemView.class)
@Column(name = "istest")
private boolean istest;
.........
}
を次のようにビューが定義されています。
public class Views {
public interface SystemView extends ClientView {
}
public interface ClientView {
}
}
私はまた、クライアントを更新するための簡単なコントローラを持っています。フィールドistest
はSystemView
に設定されているため、クライアントはそのフィールドを更新したくありません。
私は、クライアントを最初にロードし、それに応じて(私の場合はclientId
とname
)対応するパラメータを更新することによって手動で行う必要がある投稿を読みました。
ここでは、更新する必要があるフィールドのリスト(JsonView
と記されているフィールドはViews.ClientView.class
)を取得します。私は、次のことを試してみたが、それは働いていない:
ObjectReader reader = objectMapper.readerWithView(SystemView.class);
ContextAttributes attributes = reader.getAttributes();
をしかし、attributes
は、任意の要素なしに戻っています。
ビューに基づいてこのフィールドのリストを取得する方法はありますか?あなたがReflection
好きで、クラス内のフィールドの注釈にアクセスし、検査しようとすることができる