Erreur Hibernate - La collection n’a ni type générique ni OneToMany.targetEntity ()

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,

  1. Définir l'adresse; // L'ensemble est de type brut, Hibernate renvoie une exception.

  2. 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; } }