2015-06-04 224 views
2

我有hibernate实体,传递给controller作为参数,我想隐藏userID字段。我用它的数据库操作和不`吨需要将其显示为输入参数隐藏JSON字段

@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; 
    }` 
+1

你可以尝试注释与'['@ JsonIgnore'(https://github.com/FasterXML/jackson-annotations)或'@ JsonIgnoreProperties' userID' –

回答

1

你可以做这样的事情

@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; 
    }` 

现在,如果你使用像杰克逊

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; 
    }`