본문 바로가기

JoinColumn4

JPA - 다양한 연관관계 - M : N 식별관계 - 참조: 자바 ORM 표준 JPA 프로그래밍 - M : N 연결 엔티티 이제 1 : 1, 1 : N, M : N 의 단방향과 양방향을 모두 알아보았으니 도메인 설계만 잘하면 JPA 로 모든 맵핑을 할 수 있을까? 세상 문제가 그렇게 간단하면 좋겠지만 M : N 관계에서 더 살펴볼 사항이 있다. 앞의 글 다양한 연관관계 M : N 의 ER Diagram 과 UML 을 다시 한번 생각해보자. ER Diagram 에 USER 와 PRODUCT 테이블이 있었고, 두 테이블이 서로에 대해 M : N 의 관계라면 외래키를 이용해서 표현할 방법이 없으므로 USER_PRODUCT 조인 테이블도 추가했었다. 반면 객체(UML Digram)에서는 User 와 Product 엔티티를 선언하고 서로 Collection 으로.. 2021. 7. 10.
JPA - 다양한 연관관계 - M : N - 참조: 자바 ORM 표준 JPA 프로그래밍 - M : N 관계 회원과 상품이 있다고 가정해보자. 회원은 여러 상품을 주문할 수 있고, 하나의 상품도 여러 회원들에 의해 주문될 수 있다. 이때 다중성의 관계는 M : N 이다. 이를 ER Diagram 으로 나타내면 위와 같다. 그러나 RDB(관계형 DB)는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다. 그래서 조인 테이블을 사용한다. 1 번째 다이어그램에서 USER 와 PRODUCT 의 PK인 USER_ID 와 PRODUCT_ID 로 이루어진 조인테이블 USER_PRODUCT 가 추가되었다. 하지만 객체의 경우에는 서로에 대해 M : N 을 나타낼 때 조인객체를 두지 않는다. 위 다이어그램처럼 다대다 관계에서 회원은 상품을, 상품은 회원을 컬.. 2021. 7. 8.
JPA - 연관관계 맵핑 - 연관관계 맵핑 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 외래키에서 참조로의 변환 지난번 요구사항을 Entity 로 변환하는 과정에서 아래 다이어그램과 같이 속성으로 외래키를 그대로 냅두었었다. 연관관계 맵핑을 배웠으니 이 외래키들을 참조로 변환할 수 있다. 연관관계를 더 명확히 보기 위해서 해당 필드에도 다중성을 표시하였다. 아래 설명은 위의 다이어그램에서 클래스간의 관계를 파악한것이다. Member - Order: 멤버는 주문을 1건도 하지 않을 수도, 여러건을 할 수도 있다. 1 : N 의 관계이다. Member 와 Order 는 서로간을 참조하는 양방향 연관관계이다. 외래키는 Order 에서 MEMBER_ID 를 가져야 한다. 앞에서 설명했듯이 Member : Order = 1 : N 이므로 N 쪽에서 .. 2021. 7. 2.
JPA - 연관관계 맵핑 - 단방향 연관 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 연관관계 대부분의 엔티티들은 다른 엔티티와 관계가 있다. 주문은 상품과, 상품은 카테고리등 다른 엔티티와 관계를 갖는다. JPA 를 사용시 관계설정의 핵심은 객체 와 DB 가 다른 엔티티들과 관계를 맺을 때 연관방식이 다른다는데에 있다. DB 에서 다른 엔티티를 참조할 때 외래키를 사용하는데 JPA 를 이용하여 어플리케이션에서 어떻게 나타낼지 알아보자. 본격적으로 알아보기전 연관과 관련된 핵심 키워드를 알아본다. 방향: 단방향과 양방향이 있다. 만약 멤버가 주문을 참조하기만 하면 단방향이며, 만약 주문도 멤버를 참조한다면 양방향 관계이다. 다중성: 1:1, 1:N, N:1, M:N 관계를 나타낸다. 만약 어플리케이션에서 "회원은 여러 주문을 할 수 있으며.. 2021. 6. 30.