2. API 개발 고급 - 준비

2024. 8. 22. 17:17·JPA/JPA 활용 2
목차
  1. 조회용 샘플 데이터 입력

조회용 샘플 데이터 입력

@Component
@RequiredArgsConstructor
public class InitDb {
    
    private final InitService initService;

    @PostConstruct
    public void init() {
        initService.dbInit1();
        initService.dbInit2();
    }
    
    @Component
    @Transactional
    @RequiredArgsConstructor
    static class InitService {
        
        private final EntityManager em;
        
        public void dbInit1() {
            Member member = createMember("userA", "서울", "1", "1111"); 
            em.persist(member);
            
            Book book1 = createBook("JPA1 BOOK", 10000, 100);
            em.persist(book1);
            Book book2 = createBook("JPA2 BOOK", 20000, 100);
            em.persist(book2);
            
            OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1);
            OrderItem orderItem2 = OrderItem.createOrderItem(book2, 20000, 2);
            Order order = Order.createOrder(member, createDelivery(member), orderItem1, orderItem2);
            em.persist(order);
        }
        
        public void dbInit2() {
            Member member = createMember("userB", "진주", "2", "2222");
            em.persist(member);
            
            Book book1 = createBook("SPRING1 BOOK", 20000, 200);
            em.persist(book1);
            Book book2 = createBook("SPRING2 BOOK", 40000, 300);
            em.persist(book2);
            
            Delivery delivery = createDelivery(member);
            OrderItem orderItem1 = OrderItem.createOrderItem(book1, 20000, 3);
            OrderItem orderItem2 = OrderItem.createOrderItem(book2, 40000, 4);
            Order order = Order.createOrder(member, delivery, orderItem1, orderItem2);
            em.persist(order);
        }
        
        private Member createMember(String name, String city, String street,
                                    String zipcode) {
            
            Member member = new Member();
            member.setName(name);
            member.setAddress(new Address(city, street, zipcode));
            return member;
        }
        
        private Book createBook(String name, int price, int stockQuantity) {
            Book book = new Book();
            book.setName(name);
            book.setPrice(price);
            book.setStockQuantity(stockQuantity);
            return book;
        }
        
        private Delivery createDelivery(Member member) {
            Delivery delivery = new Delivery();
            delivery.setAddress(member.getAddress());
            return delivery;
        }
    }
}

 

'JPA > JPA 활용 2' 카테고리의 다른 글

5. API 개발 고급 - 실무 필수 최적화  (0) 2024.08.24
4. API 개발 고급 - 컬렉션 조회 최적화  (0) 2024.08.24
3. API 개발 고급 - 지연 로딩과 조회 성능 최적화  (0) 2024.08.23
1. API 개발 기본  (0) 2024.08.22
  1. 조회용 샘플 데이터 입력
'JPA/JPA 활용 2' 카테고리의 다른 글
  • 5. API 개발 고급 - 실무 필수 최적화
  • 4. API 개발 고급 - 컬렉션 조회 최적화
  • 3. API 개발 고급 - 지연 로딩과 조회 성능 최적화
  • 1. API 개발 기본
an_jjin
an_jjin
공부한 내용을 정리하는 개발 기록 블로그
an_jjin
An Devlog
an_jjin
전체
오늘
어제
  • 분류 전체보기
    • JAVA
      • 초급
      • 중급1
      • 중급2
      • 고급1
    • Spring
      • 핵심 원리 기본
      • MVC1
      • MVC2
      • DB1
      • 락
      • 디자인 패턴
      • AOP
    • JPA
      • JPA 기본
      • JPA 활용 1
      • JPA 활용 2
      • Spring Data Jpa
      • JPA 정리
    • 프로젝트
      • Filmeet
      • FitTrip
      • Kidsping
    • CS
      • 기술 면접 대비 CS 전공 핵심요약집
    • 네트워크
      • HTTP
      • WebSocket
    • 데이터베이스
    • 운영체제
      • 뇌를 자극하는 윈도우즈 시스템 프로그래밍
    • Git
    • Kafka
    • Docker
    • [LG유플러스] 유레카
    • 회고

블로그 메뉴

  • 홈
  • 태그
  • 방명록

링크

공지사항

인기 글

태그

Websocket
lg 유플러스 유레카
before_commit
이벤트 응모 시스템
객체지향
트랜잭션 아웃박스 패턴
스레드
동시성
db부하
빈 후처리기
분산락
redlock
redis 분산락
선착순 응모 시스템
캐시
프록시 팩토리
redis
AOP
lg 유레카
도커
lg 유플러스 유레카 sw 교육
spring websocket
after_commit
STOMP
Transactional Outbox
transactional outbox pattern
자바
lg 유플러스 유레카 후기
lg 유플러스 유레카 sw 교육 후기
queryplan

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.1
an_jjin
2. API 개발 고급 - 준비

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.