Проблема
В разработке 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 не знает, с каким “классом” связываться.
Например,
- Установить адрес;//В Набор – тип raw, режим гибернации возвращает исключение.
- Установите <Адрес> адрес;//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/”