Ruhezustand - Sammlung hat weder einen generischen Typ noch OneToMany.targetEntity ()

Ruhezustand - Die Auflistung hat weder einen generischen Typ noch OneToMany.targetEntity ().

Problem

Definiert in der Ruhezustand-Entwicklung eine bis mehrere Beziehungen über Anmerkungen.

package com.example.user.model;

@Entity
@Table(name = "USER", schema = "MKYONG")
public class User implements java.io.Serializable {

    private Set address = new HashSet(0);
    //...

    @OneToMany(orphanRemoval=true,
    cascade=CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
    public Set getAddress() {
        return this.address;
    }

}

Aber es trifft folgende Ausnahme:

Initial SessionFactory creation failed. org.hibernate.AnnotationException:
Collection has neither generic type or OneToMany.targetEntity() defined: com.example.user.model.user

Lösung

Die Klasse "User" hat eine Raw-Typensammlung "Set address", und Hibernate unterstützt dies nicht, da Hibernate nicht weiß, mit welcher "Klasse" eine Verknüpfung hergestellt werden soll.

Zum Beispiel,

  1. Adresse einstellen; // Das Set ist ein Raw-Typ, der Ruhezustand gibt eine Ausnahme zurück.

  2. Adresse einstellen; // Hibernate weiß, dass Set jetzt die Adressklasse ist.

Ihre Klasse muss sich also folgendermaßen ändern:

package com.example.user.model;

@Entity
@Table(name = "USER", schema = "MKYONG")
public class User implements java.io.Serializable {

    private Set
address = new HashSet
(0); //... @OneToMany(orphanRemoval=true, cascade=CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user") public Set
getAddress() { return this.address; } }