@Column(name = "password", nullable = false)
@JSonIgnore
private String password;
我在我的模型类中给出了上面的字段,但它对POST方法没有用。
错误:列中的空值"密码"违反非空约束
答案 0 :(得分:1)
您已将字段设置为nullable = false
- 这意味着密码不能为空,因此某些代码验证不允许您将空值传递到password
。
答案 1 :(得分:1)
我解决了这个问题。
这是我的旧代码:
@Column(name = "password", nullable = false)
`@JSonIgnore`
`private String password;`
我们可以使用JSonProperty代替JSonIgnore。以下是代码:
这是新代码:
@Column(name = "password", nullable = false)
@JsonProperty(access = Access.WRITE_ONLY)
private String password;
感谢大家的帮助......
答案 2 :(得分:0)
我认为你正在混淆请求和回复:
如果您希望在不发送密码时使POST数据有效,则需要创建一个可以保存密码的对象。这可以是一个可保存的超类,其中子类只有密码,或者只是另一个与另一个拥有密码字段的类有关系的类。
如果您不想要单独的类,则必须将密码添加到请求中,或者将@Column注释中的nullable属性更改为true。
答案 3 :(得分:0)
在getter方法上仅添加@JsonIgnore 。
@Column(name = "password", nullable = false)
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}