백엔드

Spring

[JPA] 연관관계의 주인

JPA를 사용하며 알아야할 개념중 '연관관계의 주인'에 대해서 살펴보자. 연관관계의 주인이란? JPA에서 연관관계의 주인은 엔티티 간의 양방향 연관관계를 관리하는데 중요한 역할을 하는 개념이다. 양방향 연관관계란 두 개의 엔티티 클래스가 서로를 참조하고 있는 상태를 의미한다. 연관관계의 주인은 일반적으로 두 개의 연관관계 테이블중 외래키를 가지고 있는 테이블에 해당하는 엔티티가 연관관계의 주인이 된다. 연관관계의 주인을 엔티티간의 관계를 주도하고 관리하게 된다. 주인 엔티티의 필드를 사용하여 연관관계 간의 관계를 매핑하며, 이 필드는 데이터베이스 테이블에 반영된다. 더불어 연관관계의 주인이 아닌 엔티티는 읽기 전용(Read-Only) 엔티티로 사용되게 된다. 주인 엔티티가 데이터베이스에 영향을 미치기 때..

Spring

[JPA]연관관계 - 다대다(N:M)

JPA 연관관계 다대다(N:M) 실무에선 보통 사용하지 않는것을 권장한다. 관계형 데이터베이스에서 정규화된 2개의 테이블로 다대다를 표현할 수 없다. 관계형 데이터베이스에서 다대다를 표현하기 위해서는 중간 테이블을 통해 일대다, 다대일로 나누어서 표현해야한다. JPA에서는 관계형 데이터베이스가 중간 테이블을 만드는 것과 달리 @ManyToMany 어노테이션을 통해 별도의 중간 테이블에 해당하는 엔티티를 만들지 않고도 다대다를 표현할 수 있다. 단방향 다대다 다대다 관계를 JPA를 통한 단방향 구현시 아래와 같이 코드 작성이 가능하다. Member (연관관계의 주인) @Entity @Table(name = "member") @Getter public class MemberEntity { @Id @Gener..

turtleDev
'백엔드' 태그의 글 목록