JPA

엔티티 매핑 - 실전 예제

희구 2021. 8. 5. 18:23
  1. 요구사항 분석과 기본 매핑

요구사항 분석

  • 회원은 상품을 주문할 수 있다.
  • 주문 시 여러 종류의 상품을 선택할 수 있다.

기능목록

  • 회원기능
    • 회원등록
    • 회원조회
  • 상품기능
    • 상품등록
    • 상품수정
    • 상품조회
  • 주문기능
    • 상품주문
    • 주문내역조회
    • 주문취소

image-20210805132030353

도메인 모델 분석

  • 회원과 주문의 관계: 회원은 여러번 주문할 수 있다. (일대 다)
  • 주문과 상품의 관계: 주문할 때 여러 상품을 선택할 수 있다.
  • 반대로 같은 상품도 여러번 주문될 수 있다. 주문상품이라는 모델을 만들어서 다대다 관계를

일대다, 다대일 관계로 풀어냄.

image-20210805132139339

테이블 설계

image-20210805132206208

엔티티 설계와 매핑

image-20210805132225519

데이터 중심 설계의 문제점

  • 현재 방식은 객체 설계를 테이블 설계에 맞춘 방식
  • 테이블의 외래키를 객체에 그대로 가져옴
  • 객체 그래프 탐색이 불가능
  • 참조가 없으므로 UML도 잘못됨

실전예제

project명 : jpashop

package명: jpabook.jpashop.domain

위 사진대로 클래스를 생성 해줌

image-20210805180934721

임의로 jpamain을 만들어서 잘 되나 확인해보기

image-20210805181233123image-20210805181242385

이렇게 테이블이 생성된다.

image-20210805181310403

테이블이 만들어짐

 

 

 

 

 

- 참고 : 김영한님의 자바 ORM 표준 JPA 프로그래밍 기본 강의