Ошибка гибернации - коллекция не имеет ни универсального типа, ни OneToMany.targetEntity ()

Ошибка гибернации - коллекция не имеет ни универсального типа, ни OneToMany.targetEntity ()

проблема

В разработке Hibernate определены отношения один ко многим посредством аннотации.

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

}

Но оно попадает в следующее исключение:

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

Решение

Класс «Пользователь» имеет коллекцию необработанных типов «Set address», и Hibernate не поддерживает это, потому что Hibernate не знает, с каким «классом» связываться.

Например,

  1. Установить адрес; // Набор является необработанным типом, Hibernate возвращает исключение.

  2. Установить адрес <адрес>; // Hibernate теперь знает, что Set is Address class.

Итак, ваш класс должен измениться так:

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