3. 도메인 설계
·
SpringBoot 코딩/JPA와 SpringBoot코딩
엔티티 설계시 주의점 모든 연관관계는 지연로딩으로 설정! - 즉시로딩 : 어떤 SQL이 실행될지 추적하기 어렵다. 특히 JPQL을 실행할 때 N+1 문제가 자주 발생한다. 실무에서 모든 연관관계는 모두 lazy로 설정 @XToOne(OneToOne, ManyToOne)은 기본 fetch값이 EAGER이기 때문에 모두 LAZY로 바꿔줘야한다 (fethch = FETCHTYPE.LAZY) package jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util...
2. 테이블 설계
·
SpringBoot 코딩/JPA와 SpringBoot코딩
기능 목록 회원 기능 - 회원 등록 - 회원 조회 상품 기능 - 상품 등록 - 상품 수정 - 상품 조회 주문 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 기타 요구사항 - 상품은 재고 관리가 필요하다. - 상품의 종류는 도서, 음반, 영화가 있다. - 상품을 카테고리로 구분할 수 있다. - 상품 주문시 배송 정보를 입력할 수 있다 다대다 관계가 JPA에서는 성립되지 않기 때문에 join테이블을 생성하여 이어질 수 있도록 한다 Foreign Key가 연관관계의 주인이 되는 것이다. 반대편에 있는 것은 단순 조회에 사용된다. 연관관계 매핑 분석 회원과 주문 일대다, 다대일의 양방향 관계 연관관계의 주인은 외래키가 있는 ORDERS을 주인으로 정한다 따라서 Order.member를 ORDERS.MEM..
1. JPAShop 기본설정(JpaShop)
·
SpringBoot 코딩/JPA와 SpringBoot코딩
Yml을 통한 기본 설정 spring: datasource: url: jdbc:h2:tcp://localhost/~/test;MVCC=TRUE username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true logging: level: org.hibernate.SQL: debug bulid.gradle plugins { id 'org.springframework.boot' version '2.6.7' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id..
BE전문가 프로젝트
'SpringBoot 코딩/JPA와 SpringBoot코딩' 카테고리의 글 목록