我提前道歉,因为我不确定如何说出这个问题。我有以下课程:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "username", length = 30)
private String username;
@Column(name = "email", length = 60)
private String email;
@Column(name = "birthday", length = 40)
private Date birthday;
@Column(name = "password", length = 60)
private String password;
@Column(name = "profilepic", length = 60)
private String profilePic;
public User() {
}
public User(String username, String email, String password, Date birthday, String profilePic) {
this.username = username;
this.email = email;
this.password = password;
this.birthday = birthday;
this.profilePic = profilePic;
}
public long getId() {
return id;
}
public String getUsername() {
return username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getProfilePic() {
return profilePic;
}
public void setProfilePic(String profilePic) {
this.profilePic = profilePic;
}
}
然后在UserController类中我有一个addUser方法:
@RequestMapping("/api")
@RestController
public class UserController {
private final UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity addUser(@ModelAttribute User user) {
userRepository.save(user);
return new ResponseEntity("User Created!", HttpStatus.OK);
}
@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
当我以form-data或form-urlencoded方式发送邮递员请求时,它会保存一个新用户,但username和profilepic始终为null。我现在仔细检查了15次以上的拼写,所以我不认为就是这样。为什么那些2总是空的?
因为在你的Postman
身体你使用user_name
和profilepic
而不是username
和profilePic
。还为username
添加setter:
public void setUsername(String username) {
this.username = username;
}