添加新关系时,JPA中没有持久存在ManyToMany关系



我有一段代码,它向film_actor添加了一个条目(理论上),但它不起作用。此代码不会崩溃,但不会将添加的条目保存到数据库中。

    Actor nuevo = ActorFacadeEJB.find(actor_id);
    Film pelicula = FilmFacadeEJB.find(film_id);
    pelicula.getActors().add(nuevo);

我还有这个代码:

@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name = "film_actor", joinColumns = { @JoinColumn(name = "film_id") }, inverseJoinColumns = {
            @JoinColumn(name = "actor_id") })   
    private Set<Actor> actors;

    public Set<Actor> getActors() {
        return actors;
    }

这位演员还有一套电影:

@ManyToMany(mappedBy="actors")
private Set<Film> film= new HashSet<Film>();

我该如何解决这一切,使其发挥作用?我在谷歌上搜索了一下,很多人都有和我相似的代码,但只有我的代码不起作用。

Make sure your Annotations are proper as below :
@Entity
@Table(name="film")
class Film{
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name="film_actor", 
                joinColumns={@JoinColumn(name="film_id")}, 
                inverseJoinColumns={@JoinColumn(name="actor_id")})
 private Set<Actor> actors=new HashSet<Actor>;
}
@Entity
@Table(name="actor")
class Actor{
@ManyToMany(mappedBy="actors")
    private Set<Film> film= new HashSet<Film>();
}

您需要分配关系的两边:

pelicula.getActors().add(nuevo);
nuevo.getFilms().add(película);

最新更新