Hibernate один-ко-многим (аннотации)

Я новичок в спящем режиме, я пытаюсь научиться этому, и я столкнулся с проблемой, пытаясь сделать работу одного отношения со многими. Я пробовал несколько примеров, но ни один из них не работает.

Может кто-нибудь взглянуть на приведенный ниже код и сказать мне, где я ошибся. Я пробовал много разных уроков, но они всегда не работают, поэтому я должен что-то упустить.

Есть два класса: MovieDb и Жанр. Для каждого фильма должно быть много жанров.

Я считаю, что я включил все необходимые файлы и информацию, если не дайте мне знать.

Спасибо за помощь.

MovieDb.java

@Entity
@Table(name = "movies")
public class MovieDb extends IdElement {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    @JsonProperty("id")
    @Column(name = "movieId")
    private int movieId;

    @JsonProperty("title")
    @Column(name = "title")
    private String title;

    @JsonProperty("genres")
    @OneToMany
    private List<Genre> genres;

    public int getMovieId() { return movieId; }
    public String getTitle() { return title; }
    public List<Genre> getGenres() { return genres; }

    public void setMovieId(int movieId) { this.movieId = movieId; }
    public void setTitle(String title) { this.title = title; }
    public void setGenres(List<Genre> genres) { this.genres = genres; }
}

Genre.java

@JsonRootName("genre")
@Entity
@Table(name = "moviesGenre")
public class Genre implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id")
    private int id;

    @Column(name = "movieId")
    private int movieId;

    @JsonProperty("name")
    @Column(name = "name")
    private String name;

    public int getMovieId() { return movieId; }
    public String getName() { return name; }

    public void setMovieId(int movieId) { this.movieId = movieId; }
    public void setName(String name) { this.name = name; }
}

Main.java

public MovieDb getMovie(int movieId) {
    Session s = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = s.beginTransaction();
    MovieDb movie = null;
    try {
        String hql = "FROM MovieDb E WHERE E.movieId = " + movieId;
        Query query = s.createQuery(hql);
        List movies = query.list();
        movie = (MovieDb)movies.get(0); 
        tx.commit();
    }catch (HibernateException ex) {
        if (tx != null) 
            tx.rollback();
    }finally {
        s.close(); 
    }
    return movie;
}

public void saveMovie(MovieDb movie) {
    Session s = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = s.beginTransaction();
    try {
        s.save(movie);
        s.flush();
        tx.commit();
    } catch (HibernateException ex) {
        if (tx != null) 
            tx.rollback();
    } finally {
        s.close(); 
    }
}

Моя база данных настроена так:

фильмы

id          int           (primary)
movieId     int
title       varchar

moviesGenre

id          int           (primary)
movieId     int 
name        varchar

Мой файл Hibernate.cfg.xml, отображающий отображение, приведен ниже:

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    ...
    ...
    ...
    <mapping class="com.medialibrary.api.model.MovieDb"/>
    <mapping class="com.medialibrary.api.model.Genre"/>
  </session-factory>
</hibernate-configuration>

Ответы на вопрос(1)

Ваш ответ на вопрос