이 내용은 스프링 부트 쇼핑몰 프로젝트 with JPA 책을 학습한 내용입니다.
1. 상품 판매 상태 enum 설계
- enum 클래스에 대한 개념
- kr.spring.item.constant.item.java 생성
- 상품의 현재 판매 상태 (판매, 품절)를 나타내는 상수값 (SELL, SOLD_OUT)
package kr.spring.item.constant; // 상품의 현재 판매 상태를 나타내는 상수값 public enum ItemSellStatus { SELL, SOLD_OUT }
2. 상품 클래스 생성
- kr.spring.item.entity.java 생성
- 상품 판매 상태의 값은 ItemSellStatus 열거형의 값을 가짐
package kr.spring.item.entity; // 아이템 엔티티 import jakarta.persistence.*; import kr.spring.exception.OutOfStockException; import kr.spring.item.constant.ItemSellStatus; import kr.spring.item.dto.ItemFormDto; import kr.spring.utils.entity.BaseEntity; import lombok.*; @Entity @Table(name = "my_item") // 테이블 명칭 지정 @Getter @Setter // 필수 아님 @ToString // 문자열 자동 생성 @NoArgsConstructor // 빈생성자 생성 @AllArgsConstructor //모든 entity에 대해서 생성자를 만든다. public class Item { @Id //기본키 설정 @GeneratedValue(strategy = GenerationType.IDENTITY) //mysql의 경우 identity를 사용. @Column(name = "item_id") //name 속성은 column의 이름을 변경할 수 있다. private Long id; // 상품 코드 // null을 허용하지 않음. @Column(nullable = false, length = 50) private String itemNm; // 상품 이름 @Column(nullable = false) private int price; // 상품 가격 @Column(nullable = false, name="number") private int stockNumber; // 재고 수량 // 열거형은 기본적으로 숫자로 다루는 것이 원칙. 해당 어노테이션은 열거형을 나타내는 어노테이션 // ORDINAL = 숫자로 다룬다. STRING = 문자로 다룬다. @Enumerated(EnumType.STRING) private ItemSellStatus itemSellStatus; @Lob // 큰 데이터를 저장하는데 사용하는 데이터형(동영상, 이미지 등) @Column(nullable = false) private String itemDetail; // 상품 상세 설명 private LocalDateTime regTime; // 등록 시간 private LocalDateTime updateTime; // 수정 시간 }
3. 상품 테이블 생성
- Web Application 실행 시 @Entity 지정된 클래스를 기반으로 테이블 매핑
- spring.jpa.hibernate.ddl-auto=create 설정으로 인해서 테이블 drop 후 create
- spring.jpa.hibernate.ddl-auto=update 설정인 경우엔 테이블 update
MySQL-WorkBench or DBeaver 에서 초기에 환경설정한 데이터베이스명으로 생성된 테이블 확인
'Web & Android > 스프링 부트 쇼핑몰 프로젝트 with JPA' 카테고리의 다른 글
[스프링 부트 쇼핑몰 프로젝트 with JPA] 3. 로그인/로그아웃 (0) | 2023.10.15 |
---|---|
[스프링 부트 쇼핑몰 프로젝트 with JPA] 2-3. 회원가입 검증 (0) | 2023.10.15 |
[스프링 부트 쇼핑몰 프로젝트 with JPA] 2-2. 회원가입 페이지 (0) | 2023.10.15 |
[스프링 부트 쇼핑몰 프로젝트 with JPA] 2-1. 회원가입 로직 (0) | 2023.10.15 |
[스프링 부트 쇼핑몰 프로젝트 with JPA] 1-2. 상품 Repository 설계 (0) | 2023.10.15 |