Проблема
В разработке 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/”