일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- http
- 한번에insert하기
- java
- 다운캐스팅
- 스프링부트
- 네트워크
- 메소드
- qclass
- 오버라이딩
- MySQL
- 코린이
- java기초
- 엔티티설계
- JPA
- 레포지토리설계
- static
- 웹동작방식
- 0으로변환
- 파비콘에러
- 형변환
- git commit취소
- 업캐스팅
- 웹스토리지 사용법
- 스프링시큐리티
- 상속
- 기초
- 자바
- 프로젝트
- Git
- 생성자
- Today
- Total
딱콩이의 봄
상품 엔티티 설계하기 본문
1. 상품 엔티티 설계하기
엔티티란 데이터베이스의 테이블에 대응하는 클래스라고 생각하면 됩니다!
상품 엔티티를 만들기 위해서는 상품 테이블에 어떤 데이터가 저장되어야 할지 설계를 해야 해요!
lombok 어노테이션을 이용하겠습니다!
생성하신 패키지에서 우클릭하셔서 entity 패키지와 constant 패키지를 생성해줍시다!
constant 패키지에는 enum 타입을 모아둘 거예요. 상품이 현재 판매 중인지 품절 상태인지 나타내는 enum타입의 클래스입니다.
enum 클래스를 사용하면 연관된 상수들을 모아둘 수 있고, enum에 정의한 타입만 값을 가지도록 컴파일 시 체크할 수 있다는 장점이 있어요.
상품 정보로 상품 코드, 가격, 상품명, 상품 상세 설명, 판매 상태를 만들어줄게요. 판매 상태의 경우 재고가 없거나, 상품을 미리 등록해 놓고 나중에 판매중 상태로 바꾸거나 재고가 없을 때는 프런트에 노출시키지 않기 위해 판매 상태를 코드로 갖고 있을 거예요.
상품을 등록한 시간과 수정시간을 상품 테이블에 기록하기 위해 등록 시간과 수정시간을 localDateTime 타입으로 선언해줬어요.
상품 클래스 설계는 마쳤고! item 클래스를 엔티티로 매핑하기 위해 관련된 어노테이션들을 설정해줄게요.
item 클래스를 entity로 선언 후 @Table 어노테이션을 통해 어떤 테이블과 매핑될지를 지정합니다. item 테이블과 매핑되도록 name을 item으로 지정해줍니다.
entity로 선언한 클래스는 반드시 기본키를 가져야 해요. 기본키가 되는 멤버 변수에 @id 어노테이션을 붙여줍니다. 그리고 테이블에 매핑될 칼럼의 이름을 @Column 어노테이션을 통해 설정해줍니다.
@Column 어노테이션의 nullable 속성을 이용해 항상 값이 있어야 하는 필드는 notnull 설정을 해줄게요.
이렇게 엔티티 설계를 마쳤습니다!
다음에는 repository 설계로 돌아오겠습니다!
'봄과 함께하는 프로젝트 > 작고 소듕한 프로젝트' 카테고리의 다른 글
레포지토리 설계 / 테스트 코드 작성 (0) | 2022.12.08 |
---|---|
프로젝트 생성하기 (0) | 2022.12.07 |