Spring Boot @RequestBody 没有完全复制参数

Spring Boot @RequestBody does not copy parameters fully

我有一个 JSON 对象传递给 API 端点:

{
    "ID": 12312,
    "location": "London",
    "friends": 1231,
    "Name": "dsd",
    "verified": true

}

我有一个端点UserController:

@PostMapping("saveUser")
public String Save(@RequestBody(required = true) User newUser){
    //TODO: User needs to have ID and all other necessary params
    //TODO: RequestBody is not working. Why not?

    userservice.saveNewUser(newUser);
    return "True";
}

我有一个 User class:

@NodeEntity
public class User {

    @Id
    private long ID;
    private String Name;
    private String location;
    private int friends;
    private boolean verified;
    private int followers; 
    .... getters and setters

我的问题:当我插入用户时,数据库注册了正确的朋友和位置字段,但 ID 和关注者字段以及名称不正确。有谁知道为什么?

驼峰式。尝试将 ID 更改为 id,将 Name 更改为 name。框架假定 getID 将被声明为 iD。

名称和 ID 的第一个字符都是大写的,可能 getter 无法访问该值。你能试试这个吗?

  @Id
  @Column(name = "ID")
  private int id;

  @Column(name = "Name")
  private String name;

并仔细检查 getter 是 "getId()" 和 "getName()"

总的来说,遵循惯例总是更好。 如果你的 json 和你的 java 代码都是驼峰式的,你不应该搞乱框架特定的配置。 尽可能避免不必要的配置。