当前位置: 首页 > 知识库问答 >
问题:

springboot中的POST Api错误:列中的null值

柏麒
2023-03-14

我只是尝试在数据库中创建post api,但它不起作用,并给出了一个错误:

错误:关系“客户”的“first_name”列中的空值违反了非空约束详细信息:失败的行包含(24,0, null, null,tttt@gmail.com, 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中测试了它们:

邮递员测试

共有1个答案

萧展鹏
2023-03-14

您是否尝试过打印RequestBody Customer的内容

这是因为前端发送first\u name,而后端识别firstName。您可以尝试将JSON从前端更改为使用camelCase

{
  ...
  firstName: "tets",
  ...
}

或者您可以在模型中添加@JsonProperty注释

public class Customer {
        ...
        @JsonProperty("firstName")
        @Column(name = "first_name")
        private String firstName;
...
}
 类似资料:
  • 这是我的代码,但当我尝试插入另一个“analise”时,num\u cedula,num\u doente,data\u analise为NULL,它会给我这个错误(“错误:num\u cedula”列中的NULL值违反了非NULL约束细节:失败的行包含(32,Ortopedia,NULL,NULL,NULL,NULL,2019-12-02,glicemia,176,Instituicao1)。S

  • 我在postgresql中创建了一个存储过程,如下所示: 是->的类型 我在插入时得到如下错误:

  • 当我打印申请者的技能列表时,我有以下内容: 下面是一张表格,列出了申请人和技能之间的联系: 但是当我试图保存申请者时,我有这样一个提示:失败的行包含(23,null,null,499)。有人能给我解释一下吗?我正在使用jpa注释开发一个spring应用程序。

  • 下面是我的Spring boot Rest API应用程序。 vendor.java vendorRepository.java 不过,我还是得到了一个错误: 这个错误是什么?如何化解?

  • 我有一个简单的springboot程序,它接受json并打印出来。主要目的是使用json验证程序包,但当前的上下文是基本的请求解析。问题是,当我试图将输入请求映射到一个类实体时,它给出了以下错误:“org.springframework.http.converter.httpMessageEndableException”,。 > 控制器(Hello.java): Java类实体: 公共类Demo

  • 我正在使用带有Postgres数据库连接的JBPM6.5.0Final。当我尝试从jbpm-workbench容器开始时,将显示以下错误: 而且还 提前道谢。