Рубрики
Без рубрики

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

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

Проблема

В разработке Hibernate определяется отношение “один ко многим” с помощью аннотации.

package com.mkyong.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.mkyong.user.model.user

Решение

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

Например,

  1. Установить адрес;//В Набор – тип raw, режим гибернации возвращает исключение.
  2. Установите <Адрес> адрес;//Hibernate теперь знает, что набор является классом адреса.

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

package com.mkyong.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; } }

Оригинал: “https://mkyong.com/hibernate/hibernate-error-collection-has-neither-generic-type-or-onetomany-targetentity/”