프로젝트

[SpringBoot & JPA 프로젝트] enum

sian han 2022. 8. 17. 05:16

Item 의 SellStatus 컬럼을 Enum 클래스로 만들어보기로 했다

enum 써보고싶었음

 

@Enumerated 어노테이션을 사용해야하는데, Enumerated 는 '열거' 라는 뜻이다.

 

 

열거라는 뜻에 알맞게 클래스는 이렇게 값을 나열하는것만으로 완성이다.

 

 

 

 

그리고 해당 클래스 컬럼에 @Enumerated 어노테이션을 붙여주면된다

Item.java

 

EnumType 에는 ORDINAL 과 STRING 이 있다.

ORDINAL : enum 클래스에서 선언한 순서가 DB에 저장된다 ( 1 or 2 )

STRING : enum 클래스에서 선언된 문자열이 DB에 저장된다 ( SELL or SOLDOUT )

 

물론 숫자로 넣는게 모든면에서 최적화되어 좋겠지만,

토이프로젝트에 공부차 적용해보는것이라서

직관적으로 판매 / 품절 상태를 알 수 있도록 STRING 을 선택했다.

 

 

 

ItemRequestDto.java

DTO에 추가해주고

 

 

register.html

view 에 속성을 추가해서 상품을 등록하는 판매자가

판매중 / 품절 상태를 선택할 수 있는 select를 추가해줬다

 

 

 

상품을 등록하고 DB를 확인했을 때 아래와같이 sell_status 컬럼이 추가되었고

SELL 이라는 문자열이 들어가있는 것을 확인 할 수 있다 ! 

 

 


※ thymeleaf 에서 enum 값 가져오기

T() 사용

<span class ="sold_out_span"  th:if="${item.sellStatus!=T(com.proj.KnitMarket.Constant.SellStatus).SELL}">품절</span>