我有一个带有几个字段的JPA实体(真正的字段更复杂)。我通过REST(Spring控制器中的POST
操作)接收某些数据并立即将其存储在JPA实体中;我想看看是否有可能在发送请求时排除某些字段,杰克逊反序列化它,并构造对象。但与此同时,我希望在发回(对象被序列化)响应时包含这些字段。
@Table("key_card")
public final class KeyCard {
private String username; // Don't want this to be sent as input,
// but want to be able to send it back
// in the response
@NotBlank
private final char[] password;
}
如果有办法解决这个问题,我只是试图不对它进行两次建模(对于请求和响应)。
答案 0 :(得分:1)
您可以使用JSON视图:http://wiki.fasterxml.com/JacksonJsonView
Class Views {
static class AlwaysInclude { }
static class OnlyOnSerialize extends AlwaysInclude { }
}
然后在你的观点上:
@Table("key_card")
public final class KeyCard {
@JsonView(Views.OnlyOnSerialize.class)
private String username;
@JsonView(Views.AlwaysInclude.class)
@NotBlank
private final char[] password;
}