[내배캠 Spring TIL] Entity 관계 썸네일

[내배캠 Spring TIL] Entity 관계

Spring
2024년 8월 29일

Entity 간 관계에 대해 공부한 내용을 정리해보려 한다.

JPA에서 엔티티 간 관계는 다음과 같은 4가지 종류로 나뉜다.

일대일(One-to-One) 관계 #

@OneToOne 어노테이션을 사용한다. 예시로는 하나의 회원이 하나의 주소를 가질 때 일대일 관계를 사용하게 된다. 주로 주 엔티티에만 외래 키를 두는 방식으로 사용된다.

일대다(One-to-Many) 관계 #

@OneToMany 어노테이션을 사용한다. 예시로는 하나의 회원이 여러 주문을 가질 때 일대다 관계를 사용하게 된다. 다수 쪽 엔티티에 외래 키를 두고, 단수 쪽 엔티티는 리스트 형태로 다수 쪽 엔티티를 참조한다. mappedBy 속성을 사용하여 연관 관계의 주인을 설정해야 한다.

다대일(Many-to-One) 관계 #

@ManyToOne 어노테이션을 사용한다. 예시로는 여러 주문이 하나의 회원에게 속할 때 다대일 관계를 사용하게 된다. 일반적으로 일대다 관계에서 다수 쪽에서 단수 쪽으로 접근할 때 사용한다. 외래 키는 다수 쪽에 위치한다.

다대다(Many-to-Many) 관계 #

@ManyToMany 어노테이션을 사용한다. 예시로는 여러 학생이 여러 강의를 수강할 때 사용된다. 관계형 데이터베이스에서는 다대다 관계를 직접 지원하지 않기 때문에, 중간 테이블을 통해 다대다 관계를 매핑한다. 실무에서는 중간 테이블을 엔티티로 정의하여 다대다 관계를 1,N:1 관계로 풀어서 사용하는 것이 일반적이다.


최근 게시물

김진근 • © 2025