Erreur de mise en veille prolongée - La collection n'a ni type générique ni OneToMany.targetEntity ()
Problème
Dans le développement Hibernate, définition d'une relation un à plusieurs via l'annotation.
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; } }
Mais il frappe l'exception suivante:
Initial SessionFactory creation failed. org.hibernate.AnnotationException: Collection has neither generic type or OneToMany.targetEntity() defined: com.example.user.model.user
Solution
La classe «User» a une collection de types bruts «Set address», et Hibernate ne le prend pas en charge, car Hibernate ne sait pas à quelle «classe» se lier.
Par exemple,
-
Définir l'adresse; // L'ensemble est de type brut, Hibernate renvoie une exception.
-
Définissez l'adresse
; // Hibernate sait maintenant que la classe Set is Address.
Donc, votre classe doit changer comme ceci:
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; } }