我有 hibernate 实体,它作为参数传递给 Controller ,我想隐藏 userID 字段。我将它用于数据库操作,不需要将其显示为输入参数
@Entity
@Table(name = "user_sessions")
public class UserSession{
@Column(name="uid")
private Long userID;
@Id
@Column(name="access_key")
private String accessKey;
@Column(name="secret_key")
private String secretKey;
public Long getUserID() {
return userID;
}
public void setUserID(Long s) {
this.userID = s;
}`
最佳答案
你可以做类似的事情
@Entity
@Table(name = "user_sessions")
public class UserSession{
@Column(name="uid")
private Long userID;
@Id
@Column(name="access_key")
private String accessKey;
@Column(name="secret_key")
private String secretKey;
@JsonIgnore
public Long getUserID() {
return userID;
}
public void setUserID(Long s) {
this.userID = s;
}`
现在如果你像这样使用 jackson
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(userSession);
然后它将简单地忽略 userId
或者你可以按照下面的方式做
@Entity
@Table(name = "user_sessions")
@JsonIgnoreProperties( { "userID" })
public class UserSession{
@Column(name="uid")
private Long userID;
@Id
@Column(name="access_key")
private String accessKey;
@Column(name="secret_key")
private String secretKey;
public Long getUserID() {
return userID;
}
public void setUserID(Long s) {
this.userID = s;
}`
关于java - 隐藏 JSON 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30652659/