728x90
반응형

복합키 설정 방법은 크게 두가지가 있음

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;
    
}
반응형
복사했습니다!