2015-06-04 223 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; 
    }`