반응형
저번 포스팅에서 데이터베이스 키의 종류에 대해서 알아봤고,
예전 포스팅에서 JPA에 대해서 다뤄보았다.
JPA는 ORM 기술을 사용하여 mybatis처럼 쿼리를 짜는것이 아니라 코딩으로 구현을 하는 기술인데
저번 예시에서는 단 한개의 PK를 가지는 경우에서만 예시를 들었는데, 이번엔 여러 복합키에 대해서 구현을 할때 하는 방법에 대해서 포스팅 할것이다.
먼저 복합키와 JPA의 예시가 궁금하면 아래 참고 포스팅을 확인해보도록 한다.
두가지의 방법이 있는데 개인적으로는 IdClass구현하여 사용하는것이 쉬워서 해당 방법을 다뤄볼것이다.
먼저 일반적으로 만들어둔 엔티티에서 annotation을 하나 더 추가해준다.
@IdClass(key.class)
그리고 복합키로 묶일 컬럼들에 @Id라는 annotation을 달아준다.
그다음 좀전에 annotation에서 설명한 이름으로 클래스를 하나 만들어주고 명시를 해준다.
@EqualsAndHashCode(onlyExplicitlyIncluded =true)
@NoArgsConstructor
public class MemberId implements Serializable {
...
@EqualsAndHashCode.Include
public String teamId;
@EqualsAndHashCode.Include
public String teamName;
...
}
그리고 repository에서는
public interface MemberRepository extends JpaRepository<Member, key>{
...
}
이런식으로 테이블과 PK키를 매칭해주면 된다.
참고 포스팅
https://thenicesj.tistory.com/106
https://thenicesj.tistory.com/167
반응형
'IT > Java' 카테고리의 다른 글
com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. (41) | 2022.04.22 |
---|---|
Tomcat 서버에 springboot war파일 배포 (19) | 2022.04.20 |
JAVA TLS 접속 에러(The server selected protocol version TLS10,TLS11 is not accepted by client preferences) (43) | 2022.03.31 |
JPA (getById / findById) 차이 (40) | 2022.03.18 |
Spring 에서 IOC, AOP, DI 에 대하여 (54) | 2022.03.09 |
댓글