Ошибка гибернации - коллекция не имеет ни универсального типа, ни 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 не знает, с каким «классом» связываться.
Например,
-
Установить адрес; // Набор является необработанным типом, Hibernate возвращает исключение.
-
Установить адрес <адрес>; // 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; } }