我有一个带有几个字段的 JPA 实体(真实的字段更复杂)。我通过 REST(Spring Controller 中的 POST
操作)接收一些数据,并将其立即存储在 JPA 实体中;我想看看发送请求时是否有可能排除某些字段, jackson 反序列化它并构造对象。但同时我希望当我发回(对象被序列化)响应时包含这些字段。
@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;
}
如果有办法解决这个问题,我只是想不对其进行两次建模(对于请求和响应)。
最佳答案
您可以使用 JSON View :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;
}
关于java - JPA/Jackson - 反序列化时排除字段并在序列化时包含它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110690/