Что мне не хватает, когда я пытаюсь добавить в базу данных через Hibernate? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь выучить Java Spring Boot и Hibernate, и проверял пример за примером, но когда я пытаюсь сделать это сам, я получаю исключения NullPointerException только при запуске моих методов. Я новичок в этом и пока не все понимаю, но не вижу, чем отличается мой код от других примеров. Конечно, я не инициализирую объекты Autowired, но они никогда не инициализируются в примерах, которые я видел. Как я понял, это то, что делает автопроводка. Вероятно, это что-то об автопроводке, я не понимаю. Пожалуйста, помогите мне!

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public ResponseEntity listUsers() {
            List users = userService.list();
            return new ResponseEntity(users, HttpStatus.OK);
    }

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public ResponseEntity findById(@PathVariable(name = "id", value = "id") String name) {
            Optional<User> user = userService.findById(name);
            return new ResponseEntity(user, HttpStatus.OK);
    }

    @RequestMapping(value = "/save", method = RequestMethod.POST)
    public ResponseEntity save(@RequestBody User user) {
            userService.save(user);
            return new ResponseEntity(HttpStatus.OK);
    }
}

@Service
public class UserService{

    @Autowired
    private UserRepository userRepository;

    public List<User> list() {
        return userRepository.findAll();
    }

    public Optional<User> findById(String name) {
        return userRepository.findById(name);
    }

    public void save(User user) {
        userRepository.save(user);
    }
}

@Repository
public interface UserRepository extends JpaRepository<User,String>{

}

@Entity
@Table(name = "USER", uniqueConstraints = { @UniqueConstraint(columnNames = "name") })
public class User {

    @Id
    @Column(name = "NAME", unique = true, nullable = false)
    private String name;

    @Column(name = "PASSWORD", unique = false, nullable = false)
    private String password;

    public User(String name, String password) {
        super();
        this.name = name;
        this.password = password;
    }

    //getters & setters
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...