У меня есть объект с несколькими полями и с JsonView указанным:Spring Jackson JsonViews - Получить поля на основе 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
возвращается без каких-либо элементов.
Есть ли способ получить этот список полей на основе представления?