2016-11-05 5 views
0

В сценарии, где я разоблачение следующего объекта в Спринге остальных данных:В данном Spring отдыхать, как разрешить пользователю установить значение, но игнорировать его в запросе GET

public class User implements Serializable { 

private static final long serialVersionUID = 1L; 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "user_id") 
private Long userId; 

@NotNull 
@Size(min = 1, max = 50) 
@Column(length = 50, unique = true, nullable = false) 
private String username; 

@JsonIgnore 
@NotNull 
@Size(min = 60, max = 60) 
@Column(name = "password",length = 60) 
private String password; 
.... 

Я хотел бы пароль, чтобы не подвергаться в ответ при выполнении GET на ../users/1 , но позволяющий браузеру hal знать, что при выполнении почтового запроса ему необходимо установить пароль.

Когда я использую @JsonIgnore Hal браузер не знаю, что нужно установить в поле пароля:

hal browser post request

Как я могу сделать это? Возможно ли это?

ответ

1

Вы пытались добавить @JsonIgnore в метод получения, а не private String password?

... 

@NotNull 
@Size(min = 60, max = 60) 
@Column(name = "password",length = 60) 
private String password; 

... 

@JsonIgnore 
public String getPassword(){ 
    return this.password; 
} 


public void setPassword(String password){ 
    this.password = password; 
} 

Edit: Я только что нашел this

0

Просто используйте свойство access из @JsonIgnore.

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)

Вам не нужно, чтобы поместить его в поглотителе.

Надеюсь, это поможет.