분류 전체보기(49)
-
회원 등록
폼객체를 사용해서 화면계층과서비스계층을 명확하게분리한다. 회원 등록 폼 객체 package jpabook.jpashop.web; import jakarta.validation.constraints.NotEmpty; import lombok.Getter; import lombok.Setter; @Getter @Setter public class MemberForm { @NotEmpty(message = "회원 이름은 필수 입니다") //값이 비어있으면 오류가 나는 어노테이션 추가. private String name; private String city; private String street; private String zipcode; } 회원 등록 컨트롤러 package jpabook.jpashop.d..
2023.05.18 -
홈 화면과 레이아웃
홈화면 회원기능 회원등록 회원조회 상품기능 상품등록 상품수정 상품조회 주문기능 상품주문 주문내역조회 주문취소 홈 컨트롤러 등록 package jpabook.jpashop.domain.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home() { log.info("home controller"); return "home"; ..
2023.05.18 -
주문 검색기능개발
검색 기능을 사용하려면 어쩔수 없이 동적 쿼리가 만들어져야 하는 상황이다. 그렇다면 JPA에서동적쿼리를 어떻게 해결해야하는가? 검색 조건 파라미터 package jpabook.jpashop.domain; public class OrderSearch { private String memberName; //회원 이름 private OrderStatus orderStatus;//주문 상태[ORDER, CANCEL] //Getter, Setter } ※혐주의(극한의 의미없는 코드)※ 검색을 추가한 레퍼지토리 코드 package jpabook.jpashop.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQu..
2023.05.18 -
주문 기능 테스트
테스트요구사항 상품주문이성공해야 한다. 상품을주문할 때 재고수량을초과하면안 된다. 주문취소가성공해야 한다. package jpabook.jpashop.service; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jakarta.persistence.criteria.Predicate; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.exception.NotEnoughStockExcepti..
2023.05.18 -
주문 도메인 개발
구현기능 상품주문 주문내역조회 주문취소 순서* 주문엔티티, 주문상품엔티티개발 주문리포지토리 개발 주문서비스개발 주문검색기능개발 주문기능테스트 주문 엔티티 코드 package jpabook.jpashop.domain; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import static jakarta.persistence.FetchType.*; @Entity @Table(name = "orders") @Getter @Setter public class Order { @Id ..
2023.05.18 -
상품 도메인 개발
구현기능 상품등록 상품목록조회 상품수정 순서 상품엔티티개발(비즈니스로직추가) 상품리포지토리 개발 상품서비스개발 상품기능테스트 package jpabook.jpashop.domain.item; import jpabook.jpashop.exception.NotEnoughStockException; import lombok.Getter; import lombok.Setter; import jpabook.jpashop.domain.Category; import jakarta.persistence.*; import java.util.ArrayList; import java.util.List; // Inheritor : 상속자 @Entity @Inheritance(strategy = InheritanceType.S..
2023.05.18