【发布时间】:2019-12-29 21:43:35
【问题描述】:
我正在使用 Java 和 spring-data-jpa 开发 Web 服务。我设置了工作正常的不同端点。现在我在 post 方法中实现了逻辑并返回一个我无法解决的错误。
我使用postman,当我尝试使用 id、用户名、姓氏和密码进行发布请求时,我收到错误 500,服务器返回此错误:
java.sql.SQLIntegrityConstraintViolationException:列“encrypted_password”不能为空
package com.nicolacannata.Appws.entity;
import javax.persistence.*;
import java.io.Serializable;
@Entity(name="users")
public class UserEntity implements Serializable{
private static final long serialVersionUID = 8076405899207283205L;
@Id
@GeneratedValue
private long id;
@Column(nullable = false)
private String userId;
@Column(nullable = false, length = 50)
private String firstName;
@Column(nullable = false, length = 50)
private String lastName;
@Column(nullable = false, length = 50)
private String email;
@Column(nullable = false)
private String encryptedPassword;
private String emailVerificationToken;
@Column(nullable = false)
private boolean emailVerificationStatus = false;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEncryptedPassword() {
return encryptedPassword;
}
public void setEncryptedPassword(String encryptedPassword) {
this.encryptedPassword = encryptedPassword;
}
public String getEmailVerificationToker() {
return emailVerificationToken;
}
public void setEmailVerificationToker(String emailVerificationToker) {
this.emailVerificationToken = emailVerificationToker;
}
public boolean isEmailVerificationStatus() {
return emailVerificationStatus;
}
public void setEmailVerificationStatus(boolean emailVerificationStatus) {
this.emailVerificationStatus = emailVerificationStatus;
}
}
【问题讨论】:
-
抛出异常是因为您将列
encryptedPassword改为不是null(@Column(..., nullable = false))。根本原因很可能是因为您没有设置(正确)。如果没有看到您的端点、构造要创建的实体的逻辑以及您的 POST 请求,就很难进一步诊断问题。
标签: java sql spring-mvc spring-data-jpa