https://velog.io/@haeyoon12/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%84%B9%EC%85%9816-nozezshc
[스프링 JPA] 섹션1~6
spring initializer로 파일 생성 (https://start.spring.io/)웹 요청을 처리하기 위해 사용https://file.notion.so/f/f/0fbafcca-20bf-41b4-a8cc-5889d7af89d2/4f814aca
velog.io
섹션2. 프로젝트 환경 설정
- H2 데이터베이스, JPA 설정
섹션3. 도메인 분석 설계
- 요구사항 분석, 엔티티 설계
섹션4. 애플리케이션 구현 준비
섹션5. 회원 도메인 개발
- 회원 리포지토리, 서비스, 테스트
섹션6. 상품 도메인 개발
- 상품 엔티티, 리포지토리, 서비스
처음에 노션에 정리했는데 형식이 깨지는 관계로 vlog에 정리했습니다
퀴즈 & 질의 응답
Q1. 회원 엔티티 분석표와 , 회원 테이블 분석표를 보고 테이블간 연관관계를 찾으시오 .


Order - Member 테이블 간, MEMBER_ID 가 있는 Order 이 연관관계 주인이다 .
Order - Delivery 테이블 간, DELIVERY_ID 가 있는 Order 이 연관관계 주인이다 .
Order - OrderItem 테이블 간, ORDER_ID 가 있는 Orderitem 이 연관관계 주인인이다.
OrderItem - Item 테이블 간, ITEM_ID 가 있는 OrderItem 이 연관관계 주인이다 .
CategoryItem - Item 테이블 간, ITEM_ID 가 있는 CategoryItem 이 연관관계 주인이다 .
CategoryItem - Category 테이블 간, CATEGORY_ID 가 있는 CategoryItem 이 연관관계 주인이다 .
Q2. 엔티티매니저를 사용하는 이유 ?
엔티티 매니저는 JPA 에서 영속성 컨텍스트를 관리하며 , 데이터베이스와 엔티티 객체 간의 상호작용을 추상화하고 최적화하는 역할을 한다 .
- 영속성 컨텍스트 관리
- 데이터베이스와의 직접적인 상호작용을 최소화하고 성능을 향상시킨다 . 엔티티 매 니저는 이 영속성 컨텍스트를 관리하여 , 엔티티 객체가 메모리에 있는 동안 데이터 베이스와의 동기화를 담당한다 .
- EntityManager.persist() 를 호출하면 엔티티는 영속성 컨텍스트에 저장되고 , 트랜 잭션이 완료될 때 데이터베이스에 반영
- CRUD 작업을 처리
- 데이터베이스에 대한 생성 (Create), 조회 (Read), 수정 (Update), 삭제 (Delete) 작업을 처리하는 메서드를 제공한다 .
- 예시
- persist() : 엔티티를 저장
- merge() : 변경된 엔티티를 병합
- remove() : 엔티티를 삭제
- 직접 DB 와 상호작용하지 않고도 JPA 에서 객체 지향적으로 데이터를 처리할 수있다 .