Section 1. 상품 Entity 설계
1. 상품 판매 상태 enum 클래스
- enum 클래스에 대한 개념
- com.shop.constant.ItemSellStatus.java 생성
- 상품의 현재 판매 상태 (판매, 품절)를 나타내는 상수값 (SELL, SOLD_OUT)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fecc868d3-adcc-4b10-ace7-266b6aa0469f%2Fimage.png)
2. 상품 클래스 생성 _ Ver 1
- com.shop.entity.Item.java 생성
- 상품 판매 상태의 값은 ItemSellStatus 열거형의 값을 가짐
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Faea0e3a3-6ba4-4b43-9616-52b1b738374e%2Fimage.png)
3. Entity 관련 Annotation
어노테이션 | 설명 |
---|
@Entity | 클래스를 엔티티로 선언 |
@Table | 엔티티와 매핑할 테이블을 지정 |
@Id | 테이블의 기본키에 사용할 속성을 지정 |
@GeneratedValue | 키 값을 생성하는 방법 지정 |
@Column | 필드와 컬럼 매핑 |
@Enumerated | enum 타입 매핑 |
4. 상품 클래스 생성 _ Ver 2
- @Table 지정하지 않으면 클래스 이름과 동일한 것을 매핑
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F1dbb0606-6b4d-416a-93f3-806b972a754a%2Fimage.png)
5. 상품 테이블 생성
- Web Application 실행 시 @Entity 지정된 클래스를 기반으로 테이블 매핑
- spring.jpa.hibernate.ddl-auto=create 설정으로 인해서 테이블 drop 후 create
- Hibernate 에서 자동으로 bigint 형식으로 sequence++
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7992e3a8-cc39-4091-a2b3-16295f09ac1a%2Fimage.png)
- MySQL-WorkBench 에서 확인
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fbcc71a89-ae7a-417a-a4fa-e2d72f9bce64%2Fimage.png)