org.hibernate.AnnotationException: Collection hat weder einen generischen Typ noch OneToMany.targetEntity ().

org.hibernate.AnnotationException: Collection has neither generic type or OneToMany.targetEntity()

Problem

Weitere Informationen finden Sie in der folgenden Abbildung des Ruhezustands mithilfe von Anmerkungen, die vom NetBean-Tool für den Ruhezustand generiert werden.

Datei: Stock.java

package com.example.stock.model;
//...
@Entity
@Table(name = "stock", catalog = "example");
public class Stock implements java.io.Serializable {

    //...
    private Set stockCategories = new HashSet(0);

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "stock")
    public Set getStockCategories() {
    return this.stockCategories;
    }

    public void setStockCategories(Set stockCategories) {
    this.stockCategories = stockCategories;
    }

}

Datei: StockCategory.java

package com.example.stock.model;
//...
@Entity
@Table(name = "stock_category", catalog = "example");
public class StockCategory implements java.io.Serializable {

    private Stock stock;
    //...

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "STOCK_ID", nullable = false)
    public Stock getStock() {
    return this.stock;
    }

}

Wenn das Programm ausgeführt wird, ist folgende Ausnahme eingetreten:

Caused by: org.hibernate.AnnotationException:
    Collection has neither generic type or OneToMany.targetEntity()
    defined: com.example.stock.model.Stock.stockCategories

Lösung

Hibernate does not support relationship which is in raw type, und da Ihre "Set stockCategories" keinen der Datentypen deklariert haben und der Ruhezustand nicht in der Lage ist, damit fortzufahren.

Um dies zu beheben, deklarieren Sie einfach den genauen Datentyp in Ihrer Beziehungsvariablen, für den@OneToMany mit Anmerkungen versehen ist (siehe unten).
File : Stock.java

package com.example.stock.model;
//...
@Entity
@Table(name = "stock", catalog = "example");
public class Stock implements java.io.Serializable {

    //...
    private Set stockCategories = new HashSet(0);

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "stock")
    public Set getStockCategories() {
    return this.stockCategories;
    }

    public void setStockCategories(Set stockCategories) {
    this.stockCategories = stockCategories;
    }

}