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 代码都是驼峰式的,你不应该搞乱框架特定的配置。
尽可能避免不必要的配置。
我有一个 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 代码都是驼峰式的,你不应该搞乱框架特定的配置。 尽可能避免不必要的配置。