Die folgende nicht funktioniert:Hibernate: Wird mappedBy für eine Klasse verwendet, die eine andere Klasse erweitert, die mit JoinedSubclass gekennzeichnet ist?
@Entity
class Owner {
@OneToMany(mappedBy="owner", cascade = {CascadeType.ALL})
protected Set<B> getBSet() {
..
}
}
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
class A {
@ManyToOne
public Owner getOwner() {
...
}
}
@Entity
class B extends A {
}
Es verursacht eine Ausnahme als solche: org.hibernate.AnnotationException: mappedBy Referenz eine unbekannte Zieleinheit Eigenschaft: B.user in Besitzer.
Ich versuche zu vermeiden, die "Eigentümer" -Eigenschaft in Klasse B (die "denormalize" und kopiert den Besitzerschlüssel in beide Tabellen für Entität A und B generiert) zu kopieren. Außerdem würde ich wirklich gerne A und B in einer separaten Tabelle haben und keinen Diskriminator verwenden, indem ich SingleTable-Vererbung verwende.
Ich kann auch nicht herausfinden, wie man etwas Ähnliches macht, indem man @OneToOne zwischen A und B benutzt (und nicht B extend A).
Haben Sie es tatsächlich ausgeführt und die Session Factory erstellt? Danke - ich überprüfe es. Ich habe diesen exakt gleichen Code nicht verwendet - ich habe gerade von einem realen Beispiel genommen, das ich hatte, das die gleiche Art von Sache tut ... – GreenieMeanie
Ja, ich habe es ausgeführt. Deshalb habe ich die @ ID erwähnt. Die SF beschwerte sich darüber, dass die @id fehlte. Danach baute der SF in Ordnung. Ich hätte schwören können, dass ich genau diesen Satz eingegeben habe, hah! Viel Glück! – danieljimenez