[Spring boot & JPA] 05. 상품 도메인 개발

PADO·2021년 2월 2일
0

Spring boot & JPA

목록 보기
6/6
post-thumbnail

🌱 상품 도메인 개발

상품 엔티티 개발

구현 기능

  • 상품 등록
  • 상품 목록 조회
  • 상품 수정

순서

  • 상품 엔티티 개발(비즈니스 로직 추가)
  • 상품 리포지토리 개발
  • 상품 서비스 개발
  • 상품 기능 테스트

상품 엔티티 개발 (비즈니스 로직 추가)

		public void addStock(int quantity) {
        this.stockQuantity += quantity;
    }

    public void removeStock(int quantity) {
        int restQuantity = this.stockQuantity - quantity;
        if (restQuantity < 0) {
            throw new NotEnoughStockException("Need more Stock");
        }
        this.stockQuantity = restQuantity;
    }
  • addStock(): 파라미터로 넘어온 수만큼 재고를 늘린다.
    이 메서드는 재고가 증가하거나 상품 주문을 취소해서 재고를 다시 늘려야 할 때 사용한다.
  • removeStock(): 파라미터로 넘어온 수만큼 재고를 줄인다.
    만약 재고가 부족하면 예외가 발생한다. 주로 상품을 주문할 때 사용한다.

→ setter를 이용해 필드 값을 업데이트 하는 대신 객체지향적으로 핵심 비즈니스 로직을 엔티티에 추가

 

상품 리포지토리 개발

기능 설명

  • save()
    • id 가 없으면 신규로 보고 persist() 실행
    • id 가 있으면 이미 데이터베이스에 저장된 엔티티를 수정한다고 보고, merge() 를 실행

 

상품 서비스 개발

상품 서비스는 상품 리포지토리에 단순히 위임만 하는 클래스

0개의 댓글