在Oracle JPA中,要定義一個復合主鍵,您需要遵循以下步驟:
import javax.persistence.*;
@Entity
@Table(name = "my_table")
public class MyEntity {
// 復合主鍵的代碼將在這里定義
}
@IdClass
注解來定義復合主鍵類。首先,創建一個包含所有主鍵字段的簡單Java類。import java.io.Serializable;
import java.util.Objects;
public class MyCompositeKey implements Serializable {
private Long field1;
private Long field2;
// 生成getter和setter方法
// ...
// 重寫equals和hashCode方法,以便在比較主鍵時能夠正確識別
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MyCompositeKey that = (MyCompositeKey) o;
return Objects.equals(field1, that.field1) &&
Objects.equals(field2, that.field2);
}
@Override
public int hashCode() {
return Objects.hash(field1, field2);
}
}
@IdClass
注解來指定復合主鍵類。import javax.persistence.*;
@Entity
@Table(name = "my_table")
@IdClass(MyCompositeKey.class)
public class MyEntity {
@Id
private Long field1;
@Id
private Long field2;
// 其他字段和getter/setter方法
// ...
}
現在,您已經成功地在Oracle JPA中定義了一個復合主鍵。請注意,這種方法僅適用于單個表。如果您需要在多個表之間定義復合主鍵,您可能需要考慮使用@Embeddable
和@EmbeddedId
注解。