딱콩이의 봄

상품 엔티티 설계하기 본문

봄과 함께하는 프로젝트/작고 소듕한 프로젝트

상품 엔티티 설계하기

코린이딱콩 2022. 12. 7. 20:40

1. 상품 엔티티 설계하기

엔티티란 데이터베이스의 테이블에 대응하는 클래스라고 생각하면 됩니다!

상품 엔티티를 만들기 위해서는 상품 테이블에 어떤 데이터가 저장되어야 할지 설계를 해야 해요!

lombok 어노테이션을 이용하겠습니다!

패키지생성

생성하신 패키지에서 우클릭하셔서 entity 패키지와 constant 패키지를 생성해줍시다! 

constant 패키지에는 enum 타입을 모아둘 거예요. 상품이 현재 판매 중인지 품절 상태인지 나타내는 enum타입의 클래스입니다.

enum 클래스를 사용하면 연관된 상수들을 모아둘 수 있고, enum에 정의한 타입만 값을 가지도록 컴파일 시 체크할 수 있다는 장점이 있어요.

아이템 상태 타입
아이템 클래스가 가지고 있어야 할 멤버 변수 선언

상품 정보로 상품 코드, 가격, 상품명, 상품 상세 설명, 판매 상태를 만들어줄게요. 판매 상태의 경우 재고가 없거나, 상품을 미리 등록해 놓고 나중에 판매중 상태로 바꾸거나 재고가 없을 때는 프런트에 노출시키지 않기 위해 판매 상태를 코드로 갖고 있을 거예요.

상품을 등록한 시간과 수정시간을 상품 테이블에 기록하기 위해 등록 시간과 수정시간을 localDateTime 타입으로 선언해줬어요.

 

상품 클래스 설계는 마쳤고! item 클래스를 엔티티로 매핑하기 위해 관련된 어노테이션들을 설정해줄게요.

item 클래스를 entity로 선언 후 @Table 어노테이션을 통해 어떤 테이블과 매핑될지를 지정합니다. item 테이블과 매핑되도록 name을 item으로 지정해줍니다.

entity로 선언한 클래스는 반드시 기본키를 가져야 해요. 기본키가 되는 멤버 변수에 @id 어노테이션을 붙여줍니다. 그리고 테이블에 매핑될 칼럼의 이름을 @Column 어노테이션을 통해 설정해줍니다. 

@Column 어노테이션의 nullable 속성을 이용해 항상 값이 있어야 하는 필드는 notnull 설정을 해줄게요. 

 

이렇게 엔티티 설계를 마쳤습니다!

다음에는 repository 설계로 돌아오겠습니다!

Comments