Spring Boot @RequestBody не копирует параметры полностью - PullRequest
0 голосов
/ 04 июня 2019

У меня есть объект 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:

@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

Моя проблема: когда я вставляю пользователя, база данных регистрирует правильные данные о друзьях и местоположении, но поле и имя идентификатора и подписчиков неверны.Кто-нибудь знает почему? wrong parameters parsed

Ответы [ 3 ]

1 голос
/ 04 июня 2019

в общем, всегда лучше придерживаться соглашений. если и ваш json, и ваш java-код были camelCase, вам не нужно связываться с конфигурацией, специфичной для фреймворка. Избегайте ненужных настроек, когда это возможно.

1 голос
/ 04 июня 2019

верблюжий.Попробуйте изменить идентификатор на идентификатор и имя на имя.Frameworks предполагает, что getID был бы объявлен как iD.

0 голосов
/ 04 июня 2019

Имя и идентификатор имеют первый символ в верхнем регистре, возможно, получатель не может получить доступ к значению. Не могли бы вы попробовать это?

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

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

И получателями двойной проверки являются "getId ()" и "getName ()"

...