Ich arbeite gerade daran, einige Code zu migrieren, der zwei Entitäten (Fortschritt und Leistungsbewertung) enthält, die durch eine viele-zu-viele Beziehung verbunden sind. Jede Leistungsbewertung hat mehrere Fortschritte und jeder Fortschrittstyp kann mehreren Leistungsbewertungen zugewiesen werden. Darüber hinaus hat jede Leistungsbewertung->Fortschritt eine zusätzliche "Menge", die sich auf den Fortschritt bezieht.
Aktuell enthält das PerformanceRating-Objekt eine Map, die die "Menge" des Fortschritts für jeden dem PerformanceRating-Objekt zugewiesenen Fortschrittstyp darstellt.
Es ist wie folgt kodiert:
@Entity
class PerformanceRating{
....
....
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "performance_rating_progress_reward", joinColumns = { @JoinColumn(name = "id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "amount", nullable = false, updatable = false) })
public Map getRewardAmountByProgressMap() {
return this.rewardAmountByProgressMap;
}
Wenn ich jedoch JBoss starte (mit Hibernate 3.6/JTA/JPA), erhalte ich den folgenden Fehler:
Verwendung von @OneToMany oder @ManyToMany, die auf eine nicht zugeordnete Klasse abzielen: fwl.domain.model.PerformanceRating.rewardAmountByProgressMap[java.lang.Integer]
Ich habe einen ähnlichen Thread gefunden (Persist a Map with JPA), aber dieser scheint sich mit Nicht-Entitäts-Typen zu befassen. In einem Fall wie meinem, in dem ich eine Zuordnung von Entität/Werttyp suche, was ist die richtige Syntax?
Gibt es einen Weg, dies in Hibernate/JPA2 zu tun?
Danke,
Eric