जेपीए मर्ज () संशोधित वस्तु को फिर से शुरू करने के दौरान अपेक्षित रूप से काम नहीं करता है

वोट
12

यह इकाई के लिए मेरा सेट अप है

@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
}

मैं सफलतापूर्वक कॉल करने में सक्षम हूं entityManager.merge()' when I add a new फिल्म की सूची में अभिनेता `। निम्न तालिका सफलतापूर्वक बनी रहती है।

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

फिर मैं अभिनेता का नाम अपडेट करना चाहता हूं इसलिए मैं यह करता हूं। मैं पहले से मौजूद / मौजूदा अभिनेता को अपडेट करने में सक्षम नहीं हूं:

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

उपरोक्त काम नहीं करता है, मैं ऑब्जेक्ट को डिबग मोड में अपडेट किया जा सकता है, लेकिन कब merge() कहा जाता है यह डेटाबेस को अद्यतन नहीं करता है।

मुझसे कहां गलती हो रही है? मुझे लगा कि अगर पहले से ही मौजूद है तो मर्ज अपडेट होगा।

06/06/2020 को 03:21
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            

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