Hibernateエラー–コレクションにジェネリック型もOneToMany.targetEntity()もありません
問題
Hibernate開発では、アノテーションを介して1対多の関係を定義しました。
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
溶液
クラス「User」には生の型コレクション「Set address」があり、Hibernateはリンクする「クラス」を知らないため、これをサポートしていません。
例えば、
-
アドレスを設定します。 // Setはrawタイプであり、Hibernateは例外を返します。
-
Set
アドレス; // HibernateはSetがAddressクラスであることを知っています。
したがって、クラスは次のように変更する必要があります。
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; } }