JPA-annotation mit der association Tabelle

Ich bin mit JPA-Annotationen mit Hibernate und ich weiß wirklich nicht, wie zu verwalten association Tabelle.

Hier meine Datenbank :

| COUNTRY |      | COUNTRY_MOVIE|      | MOVIE   |
|---------|      |--------------|      |---------|
| COU_ID  |*    *| COUNTRY_ID   |*    *| MO_ID   |
| LABEL   |<---->| MOVIE_ID     |<---->| LABEL   |
|---------|      |--------------|      |---------|

Den Tisch COUNTRY_MOVIE ist ein Verein, der Tisch zwischen COUNTRY und MOVIE mit viele-zu-viele-Assoziation

In meinem JPA Objekt wusste ich nicht, erstellen Sie eine CountryMovie.java Klasse, aber ich verwende @JoinTable im Country.java wie im folgenden code :

//Package, Import...

@Entity
@Table(name="COUNTRY")
public class Country implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="COU_ID")
    private Integer couID;

    @Column(name="LABEL")
    private String label;

    //bi-directional many-to-many association to TFilmFil
    @ManyToMany
    @JoinTable(
        name="COUNTRY_MOVIE"
        , joinColumns={
            @JoinColumn(name="COU_ID")
            }
        , inverseJoinColumns={
            @JoinColumn(name="MO_ID")
            }
        )
    private List<Movie> movies;

    public Country() {
        super();
    }

    //Other constructor, Getter & Setter, and "toString" method...
}

Und in Movie.java ich nur ein @ManyToMany Anmerkung :

//Package, Import...

@Entity
@Table(name="MOVIE")
public class Movie implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="MO_ID")
    private Integer moId;

    @Column(name="LABEL")
    private String label;

    //bi-directional many-to-many association to TrPaysPay
    @ManyToMany(mappedBy="movies")
    private List<Country> countries;

    public Film() {
        super();
    }

    //Other constructor, Getter & Setter, and "toString" method...
}

Ich weiß nicht, ob es der beste Weg, um zu verwalten diese Art von Vereins-Tabelle, aber es sieht ok, aber wenn ich versuche, um all die Länder, einen Film, den ich erhalten eine LazyInitializationException aus dem Ruhezustand.

So, ich versucht, um einen fetch BEGIERIG, jede m: N-Anmerkung :

Land :

@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(

Im Film :

@ManyToMany(mappedBy="movies",fetch=FetchType.EAGER)

Dann habe ich dies erhalten :

org.springframework.Bohnen.factory.Unterstützung.DefaultSingletonBeanRegistry destroySingletons

Habe ich, um eine andere java-Klasse map COUNTRY_MOVIE? oder gibt es eine Möglichkeit, um dieses problem zu beheben durch die Verwendung der gleichen java-Klasse als jetzt ?

Tako

InformationsquelleAutor Tako | 2012-10-26
Schreibe einen Kommentar