복합 키를 설정하는 방법에는 두 가지가 있습니다.
1. @EmbeddedId 주석 사용
2. @IdClass 주석 사용
@EmbeddedId 주석 사용
복합 키가 있는 엔터티 클래스에서는 복합 키에 대해 별도의 클래스를 만들어야 합니다.
이 클래스에서 복합 키를 구성하는 필드를 선언하고 여기에 @Embeddable 주석을 첨부합니다.
@EmbeddedId 주석이 있는 엔티티 클래스에서 이 클래스를 참조하십시오.
예
public class OrderProduct {
@EmbeddedId
private OrderProductId id;
@Embeddable
public class OrderProductId implements Serializable {
@Column(name = "order_id")
private Long orderId;
@Column(name = "product_id")
private Long productId;
}
}
@IdClass 주석 사용
이 방법을 사용하면 복합 키를 구성하는 필드가 엔티티 클래스에서 직접 선언됩니다.
예
@Entity
@IdClass(OrderProductId.class)
public class OrderProduct {
@Id
private Long orderId;
@Id
private Long productId;
}