연관관계

Spring

[JPA] 일대다(1:N), 다대일(N:1) 관계

JPA의 일대다, 다대일 관계에 대해 알아보자. 일대다(1:N) 데이터베이스에서 일대다 관계는 굉장히 다양한 경우에 적용될 수 있다. 예를 들어, 장바구니와 담긴 상품, 교실과 학생, 게시판과 게시글 등이 있다. 이런 관계를 구현하기 위해 @OneToMany 어노테이션을 이용하여 다음과 같이 구현할 수 있다. 다음은 주문과 상품의 관계에 대한 일대다 양방향 관계를 나타낸 코드이다. @Entity public class Order { // ... @OneToMany(mappedBy = "order") private List products = new ArrayList(); // ... } @Entity public class Product { // ... @ManyToOne @JoinColumn(name ..

Spring

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

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

turtleDev
'연관관계' 태그의 글 목록