코딩공작소
JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(2) 본문
https://taehoon9393.tistory.com/372
JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(1)
웹 어플리케이션 만들기 진행 순서 프로젝트 환경 설정 도메인 모델과 테이블 설계 애플리케이션 기능 구현 사용할 기술 뷰 : JSP, JSTL 웹 계층 : 스프링 MVC 데이터 저장 계층 : JPA, Hibernate 기반 프
taehoon9393.tistory.com
웹 어플리케이션 만들기 진행 순서
- 프로젝트 환경 설정
- 도메인 모델과 테이블 설계
- 애플리케이션 기능 구현
사용할 기술
- 뷰 : JSP, JSTL
- 웹 계층 : 스프링 MVC
- 데이터 저장 계층 : JPA, Hibernate
- 기반 프레임워크 : 스프링 프레임워크 ( https://spring.io/ )
- 빌드 : Maven
도메인 모델과 테이블 설계
교재에 소개되어 있는 회원, 상품, 주문 기능을 가지고 있는 애플리케이션을 들여다보자
- 요구사항 분석
- 도메인 모델 설계
- 테이블 설계
- 연관관계 정리
- 앤티티 클래스 구현
- 애플리케이션 구현
- 회원 기능
- 회원 등록
- 회원 조회 - 상품 기능
- 상품 등록
- 상품 수정
- 상품 조회 - 주문 기능
- 상품 주문
- 주문 내역 조회
- 주문 취소 - 기타 요구사항
- 상품의 종류는 도서, 음반, 영화가 있다.
- 상품을 카테고리로 구분할 수 있다.
- 상품 주문 시 배송 정보를 입력할 수 있다.
UML 상세정보
엔티티 클래스 구현
앞서 appConfig.xml에서 정의한 대로, @Entity 탐색 시작 위치에 도메인 앤티티를 구현해준다.
Memeber
- id를 키 값으로 하고 자동생성되는 컬럼을 설명해준다.
- 그리고 @Embedded를 통해 임베디드형 변수로 갖는 주소값을 지정해준다.
- 다관계 쪽인 Order에게 주인관계를 설정해주고 양방향으로써 Order를 저장하는 리스트 변수를 설정해준다.
Order
- Member의 주인관계를 설정하고 지연로딩 전략을 설정한다.
- OrderItem도메인에게 주인관계를 넘겨준다.
- Delivery도메인과 1:1이지만 주인관계를 Order도메인에 설정해준다.
- 연관관계 메서드를 추가해준다.
OrderItem
- 연관관계가 있는 Item, Order의 주인관계로 설정해준다.
Item
- 싱글테이블 전략으로 설정해주고 구분칼럼을 설정해준다.
- 카테고리와 다대다 관계를 가지며 주인관계를 카테고리로 넘겨준다.
Delivery
- Order와 1:1관계이며 주인관계를 order쪽으로 넘겨준다.
- @Embedded 변수형을 사용했다.
Category
- item 앤티티와 다대다 관계를 설정해준다.
- 카테고리쪽에 주인관계로 설정을 해줬기때문에 매핑을 여기서 해준다.
- 리스트로 items를 받아준다.
- 자기 자신과 부모-자식 관계 매핑을 하므로 1:N, N:1 관계로 1명의 부모는 N개의 자식을 가질 수 있다.
- 지연로딩 전략을 사용했다.
- 연관관계 메서드로 child 변수를 추가하는 메서드를 개발해준다.
https://taehoon9393.tistory.com/374
JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(3)
https://taehoon9393.tistory.com/373 JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(2) https://taehoon9393.tistory.com/372 JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(1) 웹 어플리케이션 만들기 진
taehoon9393.tistory.com
'어플리케이션개발 > JPA' 카테고리의 다른 글
JPA 프로그래밍 학습 정리 (9) - 스프링 데이터 JPA(1) (0) | 2024.02.19 |
---|---|
JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(3) (0) | 2024.02.17 |
JPA 프로그래밍 학습 정리 (8) - 웹 어플리케이션 제작(1) (0) | 2024.02.14 |
JPA 프로그래밍 학습 정리 (7) - 객체지향 쿼리언어 (2) (1) | 2024.02.01 |
JPA 프로그래밍 학습 정리 (7) - 객체지향 쿼리언어 (1) (1) | 2024.01.29 |