Hibernate Error - コレクションにジェネリック型もOneToMany.targetEntity()もありません.

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はリンクする「クラス」を知らないため、これをサポートしていません。

例えば、

  1. アドレスを設定します。 // Setはrawタイプであり、Hibernateは例外を返します。

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