REST API JPA Обновление только подмножества полей с помощью crud save - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь обновить объект (используя операцию сохранения) только поле, отправленное в запросе покоя, без необходимости устанавливать каждого поля в запросе. Я думал, что @DynamicUpdate поможет мне в этом, но он только улучшает запрос к базе данных, обновляя только изменяемые поля. Как и ожидалось, отправка только нескольких полей для обновления не отправленных полей будет иметь значение NULL. Кто-нибудь знает способ сделать это без всей проверки, если поля в запросе и сделать набор? Где мой код:

Запрос на изменение адреса электронной почты пользователя 1.

      "id": 1,
      "email": "test@gmail.com"
  } 

Обновление метода пользователя из сервиса:

    public User updateUser(User user) throws UserServiceException {

        if (user.getFirstName() != null && user.getFirstName().length() == 0)
            throw new BadRequestException("First Name not valid");

        if (user.getLastName() != null && user.getLastName().length() == 0)
            throw new BadRequestException("Last Name not valid");

        if (user.getCity() != null && user.getCity().length() == 0)
            throw new BadRequestException("City not valid");
        if (user.getEmail() != null && !isValidEmailAddress(user.getEmail()))
            throw new BadRequestException("Email not valid");

        if (user.getPassword() != null) {
            if (!isValidPassword(user.getPassword())) {
                throw new BadRequestException("Password not valid");
            } else {
                bCryptPasswordEncoder = new BCryptPasswordEncoder();
                user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
            }
        }
        return userRepository.save(user);
    }


Очень спасибо !!

...