[스프링 부트 쇼핑몰 프로젝트 with JPA] 1-1. 상품 Entity 설계

2023. 10. 15. 09:53·Web & Android/스프링 부트 쇼핑몰 프로젝트 with JPA
이 내용은 스프링 부트 쇼핑몰 프로젝트 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
'Web & Android/스프링 부트 쇼핑몰 프로젝트 with JPA' 카테고리의 다른 글
  • [스프링 부트 쇼핑몰 프로젝트 with JPA] 2-3. 회원가입 검증
  • [스프링 부트 쇼핑몰 프로젝트 with JPA] 2-2. 회원가입 페이지
  • [스프링 부트 쇼핑몰 프로젝트 with JPA] 2-1. 회원가입 로직
  • [스프링 부트 쇼핑몰 프로젝트 with JPA] 1-2. 상품 Repository 설계
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    CS
    pcce 기출문제
    postgresql
    리눅스마스터 1급
    springboot
    DB
    baekjoon
    프로그래머스
    자바
    backjoon
    스프링 부트 쇼핑몰 프로젝트 with JPA
    플러터
    데이터
    Spring Security
    spring
    스프링부트
    Linux
    데이터베이스
    JPA
    Java
    리눅스마스터
    스프링
    CS지식
    python
    Flutter
    리눅스
    Oracle
    programmers
    시큐리티
    백준
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[스프링 부트 쇼핑몰 프로젝트 with JPA] 1-1. 상품 Entity 설계
상단으로

티스토리툴바