Was ist die beste Möglichkeit, generische Sammlung mit Platzhalter in Hibernate Mapping zu verwalten? Zum Beispiel habe ich eine ComponentParent
, ComponentChild
und Container
Klassen. Wenn ich das Beispiel unten versuchen, ich Fehler:Generische Sammlung mit Wildcard und Hibernate
Caused by: org.hibernate.AnnotationException: Collection has neither generic type or OneToMany.targetEntity() defined
Die Einheiten sind
@Entity
@Inheritance
@DiscriminatorColumn(name = "TYPE")
@Table(name = "COMPONENT")
class abstract ComponentParent {
private Long id;
...
}
@Entity
@DiscriminatorValue(name = "CHILD")
class ComponentChild extends ComponentParent {
...
}
@Entity
@Table(name = "CONTAINER")
class abstract Container {
private Long id;
@OneToMany
@JoinColumn(name = "containerId")
private List<? extends ComponentParent> components;
}
@Entity
@DiscriminatorValue("CONC")
class ConcreteContainer {
public List<ChildComponents> getComponents() {
return components;
}
}
Hallo, Sie haben Recht ComponentChild erweitert ComponentParent (Ich habe es korrigiert). Ich habe die Frage so aktualisiert, wie ich mit dem Objekttyp umgehen möchte. Ich möchte eine Implementierung von Container, die über konkrete Komponententyp weiß. –