使用 JPA 和 Hibernate 映射複合鍵
將實體對應到資料庫表時,通常使用主鍵來唯一識別記錄。由多個欄位組成的複合鍵通常用於遺留資料庫系統。 JPA 和 Hibernate 都提供了註解來有效地處理複合鍵。
使用 EmbeddedId
EmbeddedId 註解表示 Java 類別代表複合主鍵。它將類別映射到表的聚集主鍵。類別必須:
EmbeddedId 範例
@Entity public class Time { @EmbeddedId private TimePK timePK; private String src; private String dst; private Integer distance; private Integer price; } @Embeddable public class TimePK { private Integer levelStation; private Integer confPathID; // Constructor, equals(), and hashCode() methods omitted for brevity }
使用IdClass
使用IdClass擁有一個公共無參建構子定義public(或protected ) ,具有基於屬性的存取)與主鍵列對應的欄位或屬性
@Entity @IdClass(TimePK.class) public class Time { @Id private Integer levelStation; @Id private Integer confPathID; private String src; private String dst; private Integer distance; private Integer price; } public class TimePK implements Serializable { private Integer levelStation; private Integer confPathID; // Constructor, equals(), and hashCode() methods omitted for brevity }實作equals() 和hashCode() 方法用於值相等
IdClass 範例
在EmbeddedId 和IdClass 之間選擇
以上是如何使用'@EmbeddedId”和'@IdClass”在 JPA 和 Hibernate 中有效地映射複合鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!