Задать вопрос
@zawarnoy

Spring, CrudRepository, как реализовать update action?

Не обновляются сущности с помощью метода repository.save(), вот мой метод update:
@Transactional
    @RequestMapping(method = RequestMethod.PUT, path = "/{id}")
    public @ResponseBody
    String update(@PathVariable(value = "id") String id,
                            @RequestParam(required = false) String login,
                            @RequestParam(required = false) String name,
                            @RequestParam(required = false) String password) {
        Optional<User> user = userRepository.findById(Long.valueOf(id));

        if (user.isPresent()){

            User u = user.get();

            if (login != null)
                u.setLogin(login);

            if (name != null)
                u.setUsername(name);

            if (password != null)
                u.setPassword(password);

            userRepository.save(u);
            return "{ status : success }";
        }

        return "{ status : error }";
    }


И репозиторий:
package spp.lab.reposository;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import spp.lab.models.User;

@Repository
public interface UserRepository extends CrudRepository<User, Long> {

}


Возможно, кто-то сталкивался с подобной проблемой.
  • Вопрос задан
  • 2500 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@idyoshin
Всё просто - забываете "смыть" изменения. После `userRepository.save(u);` выполните `userRepository.flush();` или в один хоп `userRepository.saveAndFlush(u);`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы