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,
-
Adresse einstellen; // Das Set ist ein Raw-Typ, der Ruhezustand gibt eine Ausnahme zurück.
-
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;
}
}