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