SpringBoot JPA在发布请求时抛出异常

时间:2017-03-18 06:38:11

标签: java jpa spring-boot

我正在制作一个小应用程序,我可以使用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;
}

这是我得到的错误。 enter image description here

调试过程 enter image description here

我的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将数据保存到数据库?怎么克服这个?

1 个答案:

答案 0 :(得分:0)

在挖掘代码后,我发现了错误。通过创建x[!x %in% boxplot.stats(x)$out] 的新实例,这不是由Spring管理的(Spring不知道它并且不能注入UserRepository - 这会导致NullPointerException)。在这个示例中,它应该扩展UserService类,而不是创建新的instace。