cześć,
od razy uprzedzam, że jestem totalnie zielony w kodzenie w Javie. obecnie próbuję stworzyć RESTowe API z wykorzystaniem Spring Boota.
po próbie zaktualizowania danych z wykorzystaniem PUTa tablica się aktualizuje, tylko po ponownym pobraniu danych danych GETem pokazuje się ona dwa razy (oczywiście z innym id
). z czego to może wynikać? gdzie popełniłem błąd? czy istnieje jakaś prostsza metoda zapisania updateMovie()
?
będę wdzięczny za każdą formę pomocy :D
MovieController:
@PutMapping(path = "{id}")
public void updateMovie(@RequestBody Movie movie, @PathVariable Long id){
Movie updateMovie = movieRepository.findById(id).orElseThrow(() -> new IllegalStateException("A title with such id:" + id + "does not exist."));
updateMovie.setType_movie(movie.getType_movie());
updateMovie.setTitle(movie.getTitle());
updateMovie.setRelease_year(movie.getRelease_year());
updateMovie.setGenre(movie.getGenre());
updateMovie.setDirector(movie.getDirector());
updateMovie.setImdb_rating(movie.getImdb_rating());
updateMovie.setStoryline(movie.getStoryline());
movieService.updateMovie(movie, id);
}
MovieService:
public void updateMovie(Movie movie, Long id) {
Optional<Movie> movieOptional = movieRepository
.findMovieByTitle(movie.getTitle());
if (movieOptional.isPresent()){
throw new IllegalStateException("This title is already in the database.");
}
movieRepository.save(movie);
}
GET:
PUT:
GET2: