JPA

실전 예제 1 - 요구사항 분석과 기본 매핑(1)

방구석 대학생 2020. 9. 22. 19:29

"인프런 - 자바 ORM 표준 JPA 프로그래밍 강의를 듣고 작성한 글 입니다."

www.inflearn.com/course/ORM-JPA-Basic#

 

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

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다. 초급 웹 개발 프로그

www.inflearn.com

- 지금까지 배운 내용을 토대로 예제를 통해 간단하게 도메인 클래스를 생성해보자.

요구사항은 다음과 같다.

- 회원은 상품을 주문 할 수 있다.

- 주문 시 여러 종류의 상품을 선택 할 수 있다.

 

기능은 다음과 같다.

- 회원 기능 : 회원 등록, 회원 조회

- 상품 기능 : 상품 등록, 상품 수정, 상품 조회

- 주문 기능 : 상품 주문, 주문 내역 조회, 주문 취소

 

도메인 모델 분석

회원 - 주문의 관계 : 회원은 여러번 주문 할 수 있다.(일대다 - 1 : N)

주문 - 상품의 관계 : 주문 할 때 여러 상품을 선택할 수 있다. 반대로 같은 상품도 여러번 주문 될 수 있다,

주문 상품 이라는 모델을 만들어서 다대다(N : N) 관계를 일대다(1 : N), 다대일(N : 1) 관계로 풀어낸다.

 

** 이번 예제 글에서는 모델간 자세한 연관관계는 풀어내지 않는다.

 

 

이번엔 강의 자료에 나와있던 테이블 설계와 Entity 매핑을 토대로 도메인 클래스를 생성하기에 앞서 이번 예제 프로젝트에 적용할 새로운 h2 데이터베이스를 생성해보자.

 

우선 persistence.xml 파일의 JDBC URL 옵션을 다음과 같이 수정하자.

<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jpashop"/>

 

이후 h2 console 로 이동하여 Embedded 모드에서 JDBC URL 을 아래와 같이 설정하면 jpashop 데이터베이스 파일이 생성된다.(단, 연결 시험을 하지 않고 곧장 연결해야 한다.)

만약 오류가 발생하면서 파일이 생성되지 않는다면 cmd 를 통해 8082 번 포트의 프로세스를 종료시킨 후 다시 h2 console 에서 연결을 시도해보자.

jdbc:h2:~/jpashop

 

연결에 성공하면 데이터베이스 파일이 정상적으로 생성되어 다음번에 Server 모드에서 persistence.xml 파일에 작성해놓은 JDBC URL 을 통해 연결하면 정상적으로 데이터베이스가 연결되는 것을 확인할 수 있다.

 

거기에 더해서 Project Structure -> Project Settings -> Libraies 에서 h2 jar 파일을 추가해준 다음

pom.xml 파일과 persistence.xml 파일에 대한 작성이 끝나면 이제 예제 코드 작성을 위한 개발 환경이 완성된다.

(persistence.xml 파일은 JDBC URL 만 변경시켜 주면 되고, pom.xml 파일은 적절하게 groupId 와 artifactId 를 맞춰주자)

 

테이블 설계와 Entity 매핑에 맞춰 도메인 클래스를 작성하는 것은 다음글에서 진행해보자.