Spring Boot Server REST API 从 JSON 对象读取 null 值

Spring Boot Server REST API reads null values from JSON object

提问人:cmd 提问时间:11/14/2023 最后编辑:cmd 更新时间:11/15/2023 访问量:66

问:

我有一个使用 Spring Boot 的 REST API 设置。我尝试在 POST 请求中向 API 发送 JSON 对象以读取值并将其存储在 SQL Server 数据库表中,但它不会读取所有值。

这是我发送的 JSON 对象:

{ "filename":"recording1POST", "creationdate":"13.11.2023", "userid":1, "relativefilepath":"filepathPOST", "camerasid":1 }

这是我将其映射到的类:


import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

//Entity annotation defines class as being mapped to a table.
@Entity
@Table(name="Files")
public class Recording {
@Id//Marks the primary key of the table.
@GeneratedValue(strategy = GenerationType.IDENTITY)//Primary key auto-increments.
private int fileid;

    @Column(name = "filename")
    private String filename;
    
    @Column(name = "creationdate")
    private String creationdate;
    
    @Column(name = "userid")
    private int userid;
    
    @Column(name = "relativefilepath")
    private String relativefilepath;
    
    @Column(name = "camerasid")
    private int camerasid;
    
    public int getFileID() {
        return fileid;
    }
    
    public void setFileID(int fileID) {
        this.fileid = fileID;
    }
    
    public String getFilename() {
        return filename;
    }
    
    public void setFilename(String filename) {
        this.filename = filename;
    }
    
    public String getCreationDate() {
        return creationdate;
    }
    
    public void setCreationDate(String creationDate) {
        this.creationdate = creationDate;
    }
    
    public int getUserID() {
        return userid;
    }
    
    public void setUserID(int userID) {
        this.userid = userID;
    }
    
    public String getRelativeFilepath() {
        return relativefilepath;
    }
    
    public void setRelativeFilepath(String relativeFilepath) {
        this.relativefilepath = relativeFilepath;
    }
    
    public int getCamerasID() {
        return camerasid;
    }
    
    public void setCamerasID(int camerasID) {
        this.camerasid = camerasID;
    }

}

我得到以下结果:

Spring Boot Server REST API 未从 JSON 读取值

我无法找到有关我的具体问题的任何问题。是什么原因导致的?

编辑:这些是我的数据库表:

CREATE TABLE Users (
    userid int IDENTITY(1,1) PRIMARY KEY,
    username varchar(255),
    password varchar(255)
);

CREATE TABLE Cameras (
    cameraid int IDENTITY(1,1) PRIMARY KEY,
    cameraname varchar(255),
    camusername varchar(255),
    campassword varchar(255),
    userid int FOREIGN KEY REFERENCES Users(userid)
);

CREATE TABLE Files (
    fileid int IDENTITY(1,1) PRIMARY KEY,
    filename varchar(255),
    creationdate datetime DEFAULT(getdate()),
    userid int FOREIGN KEY REFERENCES Users(userid),
    relativefilepath varchar(255),
    camerasid int FOREIGN KEY REFERENCES Cameras(cameraid)
);
java sql-server spring-boot spring-data-jpa

评论

1赞 Kafarson 11/14/2023
共享控制器类并粘贴 StrackTrace 而不是屏幕截图

答:

0赞 DingHao 11/14/2023 #1

更改 setter/getter 如下

 public int getFileid() {
        return fileid;
    }

    public void setFileid(int fileid) {
        this.fileid = fileid;
    }

    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public String getCreationdate() {
        return creationdate;
    }

    public void setCreationdate(String creationdate) {
        this.creationdate = creationdate;
    }

    public int getUserid() {
        return userid;
    }

    public void setUserid(int userid) {
        this.userid = userid;
    }

    public String getRelativefilepath() {
        return relativefilepath;
    }

    public void setRelativefilepath(String relativefilepath) {
        this.relativefilepath = relativefilepath;
    }

    public int getCamerasid() {
        return camerasid;
    }

    public void setCamerasid(int camerasid) {
        this.camerasid = camerasid;
    }

评论

0赞 cmd 11/15/2023
这就是问题所在。我已经按照您的指定更改了它们,它现在正在接收值。非常感谢。