본문 바로가기

JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 실전 예제1 - 요구사항 분석과 기본 매핑 ( 3/3 )

- 요구사항 분석

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

- 기능 목록

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

- 도메인 모델 분석

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

https://app.diagrams.net/

- 테이블 설계

- 엔티티 설계와 매핑

- 데이터중심 설계의 문제점

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

 

- 발생했던 이슈 및 궁금한 것들

1) DB생성

- DB생성 후 persistence.xml에 암호 지정

https://freewebdev.tistory.com/68

 

[자바 ORM 표준 JPA 프로그래밍] Hello World 프로젝트 ( 1/2 )

- 실습용 데이터 베이스 다운로드(H2 Database Engine Download) https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features o..

freewebdev.tistory.com

 

2) 최초 테이블 생성(hbm2ddl.auto = create)

<!--PC경로-->
<property name="javax.persistence.jdbc.url" value="jdbc:h2:~/jpashop"/>

<!--TCP 경로로 수정-->
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jpashop"/>

 

3) Spring Boot Naming Strategies

- Java에서는 Camel Case로 사용하고, DB에서는 underscores, snake case로 사용할 경우 옵션을 통해서 자동으로 변환되도록 설정할 수 있다.

- Hiberbate는 물리적 전략과 암시적 전략을 사용하여 필드 이름을 매핑합니다. 

https://www.baeldung.com/hibernate-field-naming-spring-boot

 

 

 

 

출처

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., 본 강의는 자바 백엔

www.inflearn.com