nehme ich die folgende Situation zwischen einer übergeordneten Klasse und Kind Klasse habe:Erstellen von Composite-Primärschlüssel in der Kinderklasse (JPA)
Class Parent {
@Id
@Column(name="product")
Long product;
//more fields.
}
Class Child extends Parent {
@Column(name="type")
String productType;
@Column(name="version")
int version;
//more fields.
}
Ist es möglich, einen Verbundprimärschlüssel in der Kinderklasse zu haben, obwohl Die Child-Klasse erweitert die Parent, die bereits einen Primärschlüssel hat?
wahrscheinlich hängt von der Vererbungsstrategie ab, im Grunde für Ihren Anwendungsfall benötigen Sie mindestens 'Tabelle pro Klasse' Strategie, weil eine Tabelle nicht zwei Primärschlüssel haben kann, ich weiß nicht, was Sie neben diesem benötigen, haben Sie versucht '@Inheritance (strategie = InheritanceType.TABLE_PER_CLASS)' und dann andere '@ Id' in Kindern einstellen (Achtung: Tabelle pro Klasse ist möglicherweise nicht die beste Effizienz) – niceman
Wenn Sie Ihr wirkliches Ziel beschreiben, wie zum Beispiel 'Eltern' und 'Kind' und warum brauchen Sie für das Kind einen anderen Primärschlüssel? Vielleicht können wir Sie zu einer besseren Lösung führen – niceman
@niceman Vielen Dank für Ihre sehr schnelle Antwort. Ich habe die Strategie '@Inheritance (strategie = InheritanceType.TABLE_PER_CLASS)' nicht ausprobiert. Ich werde das untersuchen. Vielen Dank. – fonji