我正在制作一个小应用程序,我可以使用spring-boot保存用户详细信息。我创建了实体及其相应的存储库。当我发出一个帖子请求,向用户添加用户对象的id,该ID在保存到数据库时为空。这个id在MySQL中自动生成(自动增量)。从POST请求我得到3个字段,即用户名,电子邮件,密码。 User类包含字段id,用户名,电子邮件,密码。我添加了注释
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
表示id字段。一个构造函数
public User() { }
public User(String username, String email, String password) {
this.username = username;
this.email = email;
this.password = password;
}
我的userService类
@Service
public class UserService implements UserServiceInterface {
@Autowired(required = true)
private UserRepository userrepository;
@Override
public User CreateNewUser(User user) {
return userrepository.save(user);
}
}
我的userController类
@RestController
public class UserController {
UserService us = new UserService();
@RequestMapping(value ="/user",method = RequestMethod.POST)
public void RegisterUser(
@RequestParam(value="username") String username,
@RequestParam(value="email") String email,
@RequestParam(value="password") String password){
us.CreateNewUser(new User(username,email,password));
}
}
为什么我不能POST将数据保存到数据库?怎么克服这个?
答案 0 :(得分:0)
在挖掘代码后,我发现了错误。通过创建x[!x %in% boxplot.stats(x)$out]
的新实例,这不是由Spring管理的(Spring不知道它并且不能注入UserRepository - 这会导致NullPointerException)。在这个示例中,它应该扩展UserService类,而不是创建新的instace。