我只是想在資料庫中創建 post api,但它不起作用并給出錯誤:
錯誤:關系“customer”的“first_name”列中的空值違反非空約束詳細資訊:失敗行包含(24、0、null、null、[email protected]、null、f)。
這是我的 API:
@PostMapping("/customers")
public ResponseEntity<Customer> createCustomer(@RequestBody Customer customer) {
try {
Customer _customer = cutomerRepository
.save(new Customer(customer.getSerialNumber(), customer.getFirstName(),customer.getLastName(),customer.getEmail(),customer.getMobileNumber()));
return new ResponseEntity<>(_customer, HttpStatus.CREATED);
} catch (Exception e) {
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
這是我的客戶模型:
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private int id;
@Column(name = "serial_number")
private long serialNumber;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email")
private String email;
@Column(name = "mobile_number")
private String mobileNumber;
@Column(name = "is_deleted")
private boolean isDeleted;
@OneToMany
private Set <Invoice> invoices;
public Customer(){}
public Customer(long serialNumber , String firstName, String lastName, String email, String mobileNumber) {
this.serialNumber = serialNumber;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.mobileNumber = mobileNumber;
this.isDeleted = false;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public int getId() {
return this.id;
}
public String getName() {
return this.firstName;
}
public Long getSerialNumber() {
return this.serialNumber;
}
public String getEmail() {
return this.email;
}
public String getMobileNumber() {
return this.mobileNumber;
}
public void setSerialNumber(Long serialNumber) {
this.serialNumber = serialNumber;
}
public void setName(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public boolean isDeleted() {
return isDeleted;
}
public void setDeleted(boolean deleted) {
isDeleted = deleted;
}
public void setEmail(String email) {
this.email = email;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
}
它是 JPA 存盤庫,我在 postman 中測驗它們:
資料庫表:

郵遞員測驗

整個錯誤:

uj5u.com熱心網友回復:
您是否嘗試過列印@RequestBody Customer customer?
這是因為您的前端first_name在您的后端識別時發送firstName。您可以嘗試將 JSON 從前端更改為使用 camelCase
{
...
firstName: "tets",
...
}
或者你可以在模型中添加@JsonProperty 注解
public class Customer {
...
@JsonProperty("firstName")
@Column(name = "first_name")
private String firstName;
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492776.html
標籤:春天 PostgreSQL 弹簧靴 弹簧数据-jpa 邮差
上一篇:帶有條件查詢的嵌套分組依據
