Heim >Java >javaLernprogramm >Wie ordne ich zusammengesetzte Schlüssel mit JPA und Hibernate mithilfe von „@IdClass' oder „@EmbeddedId' zu?
Zusammengesetzte Schlüssel mit JPA und Hibernate zuordnen
Im bereitgestellten SQL-Schema verfügt die Time-Tabelle über einen zusammengesetzten Primärschlüssel bestehend aus levelStation und confPathID Felder. Für die Zuordnung dieses Schlüsseltyps in JPA und Hibernate sind spezielle Annotationen erforderlich, um den zusammengesetzten Primärschlüssel darzustellen.
Verwendung der IdClass-Annotation
Eine Möglichkeit besteht darin, eine Java-Klasse für zu definieren den zusammengesetzten Schlüssel mithilfe der @IdClass-Annotation. Die Klasse sollte Felder haben, die den Primärschlüsselspalten entsprechen, sowie Getter-, Setter-, Equals- und HashCode-Methoden:
public class TimePK implements Serializable { private Integer levelStation; private Integer confPathID; // Getters, setters, equals, hashCode }
Die Entitätsklasse wird dann mit @IdClass und dem zusammengesetzten Schlüsselobjekt annotiert:
@Entity @IdClass(TimePK.class) class Time implements Serializable { @Id private Integer levelStation; @Id private Integer confPathID; // Other properties }
Verwendung der EmbeddedId-Annotation
Alternativ Sie kann die Annotation @EmbeddedId verwenden, um eine Klasse zu definieren, die den zusammengesetzten Schlüssel enthält:
@Embeddable public class TimePK implements Serializable { private Integer levelStation; private Integer confPathID; // Getters, setters, equals, hashCode }
Die Entitätsklasse wird dann mit @EmbeddedId und dem eingebetteten zusammengesetzten Schlüsselobjekt annotiert:
@Entity class Time implements Serializable { @EmbeddedId private TimePK timePK; // Other properties }
Unterschiede zwischen IdClass und EmbeddedId
Sowohl @IdClass als auch @EmbeddedId ermöglicht die Zuordnung zusammengesetzter Primärschlüssel. Es gibt jedoch einige geringfügige Unterschiede:
Die Wahl zwischen @IdClass und @EmbeddedId hängt von der jeweiligen Spezifität ab Semantik Ihrer Anwendung.
Das obige ist der detaillierte Inhalt vonWie ordne ich zusammengesetzte Schlüssel mit JPA und Hibernate mithilfe von „@IdClass' oder „@EmbeddedId' zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!