본문 바로가기

OneToMany4

JPA - 다양한 연관관계 - 요구사항 분석과 맵핑 2 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 실전 예제 이전 글 JPA - 엔티티 맵핑 - 요구사항 분석과 맵핑 에 이어서 요구사항 분석을 통해 1 : 1 및 M : N 연관관계 맵핑을 적용해보자. 추가된 요구사항은 아래와 같다. 상품을 주문할 때 배송정보를 입력할 수 있다. 하나의 주문에서는 하나의 배송지로만 배송할 수 있다. 상품을 카테고리로 구분할 수 있다. 아래 다이어그램은 위의 요구사항을 반영하여 UML 을 다시 그린것이다. 이전 UML 과 비교해서 Delivery 와 Category 클래스가 추가되었다. 먼저 Order 와 Delivery 를 살펴보자. 하나의 주문시 하나의 배송지에만 배송할 수 있으므로 둘은 1 대 1 관계이다. 또 주문에서만 배송지 정보를 참조하는게 아니라 배송지 정보.. 2021. 7. 10.
JPA - 다양한 연관관계 - N : 1 과 1 : N - 참조: 자바 ORM 표준 JPA 프로그래밍 - 다양한 연관관계 앞에서 몇 가지 예제를 통해 연관관계를 작성해보았다. JPA 에 익숙하지 않다면 JPA를 사용하여 연관관계 코드를 작성하는게 헷갈릴 수 있다. 이때에는 연관관계 맵핑시 고려할 사항을 순차적으로 정해놓고 천천히 생각해보면 좀 더 수월하다. 다중성: N : 1 인지 1 : N 인지에 따라 @ManyToOne, @OneToMany 어떤 다중성 어노테이션을 사용할 지 정한다. 단방향, 양방향: 하나의 엔티티가 다른 엔티티를 참조하는지 서로 참조하는지를 정한다. 연관관계의 주인, 연관관계 편의메소드: 양방향이라면 두 엔티티중 외래키를 관리할 연관관계의 주인과 연관관계 편의메소드 작성을 고려한다. - N : 1 단방향 회원 엔티티와 팀 엔티티가 있다.. 2021. 7. 3.
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 프로그래밍 - 양방향 연관관계 이전 예제에서는 회원에서 팀으로 접근하는 단방향 연관관계를 알아보았다. 이번에는 팀에서 회원으로 접근할 수 있는 양방향 연관관계를 맵핑해본다. 위 다이어그램에서 회원과 Team은 다대일 연관관계이다. 회원은 아직 팀에 속해있지 않을 수도 있고, 1개팀에 속할수도 있지만 2개 이상팀에는 속할수가 없기 때문에 다중성의 하한과 상한은 0..1이다. 반면 팀은 여러명의 멤버들로 구성될 수 있기 때문에 다중성을 * 이며, Type은 User 이다. DB 입장에서는 달라지는 내용이 전혀 없다. 어차피 외래키 하나로 Join 하면 되기 때문에, 기존의 형상을 유지한다. User 는 이전소스와 달라지는것이 없다. Team 에서 User 를 참조하기 위한.. 2021. 7. 1.