Zusammengesetzte Schlüssel mit JPA und Hibernate zuordnen
Zusammengesetzte Schlüssel in Java Persistence API (JPA) und Hibernate zuordnen, kann mit EmbeddedId oder IdClass Anmerkungen.
Mit IdClass
Definieren Sie eine separate Primärschlüsselklasse (z. B. TimePK), die die zusammengesetzten Schlüsselfelder und ihre Getter/Setter kapselt.- Annotieren Sie die Entität mit der Annotation @IdClass und geben Sie dabei den Primärschlüssel an Klasse.
-
public class TimePK implements Serializable {
private Integer levelStation;
private Integer confPathID;
// getters, setters
}
@Entity
@IdClass(TimePK.class)
class Time {
@Id
private Integer levelStation;
@Id
private Integer confPathID;
// ...
}
Nach dem Login kopieren
Mit EmbeddedId
Definieren Sie auf ähnliche Weise eine separate Primärschlüsselklasse (z. B. TimePK).- Annotieren Sie die Primärschlüsselklasse mit der @Embeddable-Annotation.
- Annotieren die Entität mit der @EmbeddedId-Annotation und geben Sie die Primärschlüsselklasse an.
-
@Embeddable
public class TimePK implements Serializable {
private Integer levelStation;
private Integer confPathID;
// getters, setters
}
@Entity
class Time {
@EmbeddedId
private TimePK timePK;
// ...
}
Nach dem Login kopieren
Unterschiede
- Semantik: EmbeddedId legt nahe, dass der zusammengesetzte Schlüssel eine bestimmte Bedeutung hat, während IdClass besser geeignet ist, wenn die Kombination von Feldern einfach eindeutig ist Bezeichner.
- Abfragesyntax: Mit EmbeddedId wird auf die Primärschlüsselfelder über die eingebettete Primärschlüsselklasse zugegriffen, während mit IdClass direkt auf die Felder zugegriffen werden kann.
Referenzen
JPA 1.0-Spezifikation: Abschnitt 2.1.4, 9.1.14 und 9.1.15-
Das obige ist der detaillierte Inhalt vonWie ordne ich zusammengesetzte Schlüssel in JPA und Hibernate mithilfe von EmbeddedId oder IdClass zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!