Fuziunea JPA () nu funcționează așa cum este de așteptat la salvarea unui obiect modificat

voturi
12

Aceasta este configurarea mea pentru entitate

@Entity
@Getter
@Setter
@Table(name = movies, schema = public)
public class Movie {
    @Id
    @Column(name = id)
    private UUID movieId;

    @OneToMany(mappedBy = actor, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private Set<Actors> actors = new HashSet<>();

    //Getters and setters
    }
}
@Entity
@Getter
@Setter
@Table(name = actors_movies, schema = public)
public class ActorMovie {

    @EmbeddedId
    private ActorId id;

    @ManyToOne(fetch = FetchType.LAZY)
    @MapsId(movieId)
    @JoinColumn(name = id_movie_movie)
    private Movie movie;

    //Getters and setters below
}

Sunt capabil să sun cu succes entityManager.merge()' when I add a new Actor` la lista filmelor. Următoarele persista cu succes tabelele.

Movie movie = getMovieById(id);
movie.setActors(new Actor());
entityManager.merge(movie);

Apoi vreau să actualizez numele actorului, deci ceea ce fac este acesta. NU am posibilitatea să actualizez un actor deja persistent / existent:

Movie movie = getMovieById(id);
movie.getActors().get(0).setName(New Name);
entityManager.merge(movie);

Cele de mai sus nu funcționează, pot vedea actualizarea obiectului în modul de depanare, dar când merge() se numește că nu actualizează baza de date.

Unde greșesc? Am crezut că fuziunea se va actualiza dacă există deja.

Întrebat 06/06/2020 la 03:21
sursa de către utilizator
În alte limbi...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more