안녕하세요 안녕주입니다.
오늘은 인프런의 JPA 활용2 강의를 들으면서 복습 겸 정리한 블로그를 올리려고 합니다.
해당 포스팅은 다음 강의를 이어 나가기위한 샘플데이터를 입력하는 코드입니다..!
table을 drop 하고 다시 만들기 위해 yml파일에 ddl-auto: create으로 다시 변경
API 개발 고급 소개
조회용 샘플 데이터 입력
package jpabook.jpashop;
import jpabook.jpashop.domain.*;
import jpabook.jpashop.domain.item.Book;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import javax.persistence.EntityManager;
/**
* 종 주문 2개
* * userA
* * JPA1 BOOK
* * JPA2 BOOK
* * userB
* * SPRING1 BOOK
* * SPRING2 BOOK
*/
@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() {
System.out.println("Init1" + this.getClass());
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);
Delivery delivery = createDelivery(member);
Order order = Order.createOrder(member, delivery, 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);
OrderItem orderItem1 = OrderItem.createOrderItem(book1, 20000, 3);
OrderItem orderItem2 = OrderItem.createOrderItem(book2, 40000, 4);
Delivery delivery = createDelivery(member);
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 book1 = new Book();
book1.setName(name);
book1.setPrice(price);
book1.setStockQuantity(stockQuantity);
return book1;
}
private Delivery createDelivery(Member member) {
Delivery delivery = new Delivery();
delivery.setAddress(member.getAddress());
return delivery;
}
}
}
주문 내역 확인에서(localhost:8080)는 회원당 주문 내역 하나만 출력하게 되어 있음으로 postman으로 찍어서 보면 주문내역 전체가 뜬다.
'Back-end > Spring' 카테고리의 다른 글
[Spring] File과 JSON 데이터를 multipart/form-data로 받아오는 방법 (9) | 2024.01.19 |
---|---|
[Spring] JPA 활용2 - 지연로딩과 조회 성능 최적화 (0) | 2022.07.25 |
[Spring] JPA 활용2 - API 개발 기본 (0) | 2022.07.25 |
[Spring] 빈 생명주기 콜백 (0) | 2021.10.05 |
[Spring] 컴포넌트 스캔 (0) | 2021.10.05 |
댓글