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;
}
}