복합키를 jpa에서 사용하는 방법
IdClass : pk에 해당하는 멤버변수들을 모아서 다른 클래스로 만들고, 실제로 사용할 클래스에서 IdClass annotation을 사용하여 지정함
EmbeddedId: Embeddable로 다른 클래스를 만들고, EmbeddedId로 해당 클래스를 지정해두면, 복합키로 사용할 수 있음
IdClass는 상속관계에 있어서, 부모 클래스와 자식 클래스의 멤버변수들을 복합하여 Pk로 사용하는 경우에 장점이 있고,
EmbeddedId는 객체지향적으로 사용할 수 있는 장점이 있다.
둘다 serializable 인터페이스를 구현해야하고,
equals, hashCode를 구현해야 한다.
기본 생성자가 있어야 한다.
식별자 클래스는 public이어야 한다.
IdClass의 경우 멤버변수의 이름이 같아야 한다.
출처: 자바 ORM 표준 JPA 프로그래밍 7장, 김영한
'공부기록 > JPA' 카테고리의 다른 글
transaction isolation level (0) | 2021.12.29 |
---|---|
트랜잭션 격리 수준 (0) | 2021.12.20 |
JPA 면접 대비 공부중 (0) | 2021.11.20 |
자바 ORM 표준 JPA 프로그래밍 #1~5 (0) | 2021.05.03 |