【发布时间】:2016-11-13 09:23:01
【问题描述】:
我有一个包含多个字段并指定了 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 没有任何元素返回。
有没有办法根据视图获取这个字段列表?
【问题讨论】:
标签: java spring jackson json-view