728x90
상품 엔티티 설계
엔티티
데이터베이스의 테이블에 대응하는 클래스.
@Entity가 붙은 클래스는 JPA에서 관리하며 엔티티라고 부릅니다.
Entity클래스는 반드시 기본키(@Id)를 가져야 합니다.
상품의 기본적인 정보를 담은 Item 클래스 생성
com.shop.entity 패키지 생성 후
Item 클래스 생성
package com.shop.entity;
import com.shop.constant.ItemSellStatus;
import lombok .Getter;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
// 롬복을 사용하여 어노테이션으로 Getter/Setter/ToString 처리
@Getter
@Setter
@ToString
public class Item {
private Long id; I/상품코드
private String itemNm; //상품명
private int price; //가격
private int stockNumber; //재고수량
private String itemDetail; //상품 상세 설명
private ItemSellStatus itemSellStatus; //상품 판매 상태
private LocalDateTime regTime; //등록 시간
private LocalDateTime updateTime; //수정 시간
}
상품의 상태를 나타내는 enum 타입 클래스 생성
com.shop.constant패키지 생성 후
enum 타입 클래스 생성
package com.shop.constant;
public enum ItemSellStatus {
SELL, SOLD_OUT
}
생성한 Item클래스 Entity 매핑
package com.shop.entity;
import com.shop.constant.ItemSellStatus;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.time.LocalDateTime;
@Entity
@Table(name = "item")
@Getter
@Setter
@ToString
public class Item {
@Id
@Column(name = "item_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id; // 상품 코드
@Column(nullable = false, length = 50)
private String itemNm; // 상품명
@Column(name="price", nullable = false)
private int price; // 가격
@Column(nullable = false)
private int stockNumber; //재고수량
@Lob
@Column(nullable = false)
private String itemDetail; //상품 상세 설명
@Enumerated(EnumType.STRING)
private ItemSellStatus itemSellStatus; // 상품 판매 상태
private LocalDateTime regTime; // 등록 시간
private LocalDateTime updateTime; // 수정 시간
}
1. Item 클래스를 Entity로 선언, @Table 어노테이션을 사용하여 테이블 매핑 지정.
item 테이블과 매핑되도록 name을 "item"으로 지정
2. Entity 클래스는 기본키를 가져야함. 기본키가 되는 메버변수에 @Id 어노테이션 설정.
테이블에 매핑될 컬럼의 이름을 @Column 어노테이션을 통해 설정
@GeneratedValue 어노테이션을 통해 기본키 생성 전략을 Auto로 지정.
3. @Column 어노테이션의 nullable 속성을 이용하여 항상 값이 있어야 하는 필드를 not null로 설정.
String 필드는 default 값으로 255가 설정되어 있음.
각 String 필드마다 필요한 길이를 length 속성에 default 값을 셋팅.
ShopApplication 실행
반응형
'프로젝트 > Archive' 카테고리의 다른 글
[스프링 부트 쇼핑몰 프로젝트 with jpa] Spring DATA JPA Querydsl (0) | 2022.10.04 |
---|---|
[스프링 부트 쇼핑몰 프로젝트 with jpa] @Query 어노테이션 (0) | 2022.09.21 |
[스프링 부트 쇼핑몰 프로젝트 with jpa] 쿼리메소드 (0) | 2022.09.20 |
[스프링 부트 쇼핑몰 프로젝트 with jpa] Repository 설계 (0) | 2022.09.20 |
[스프링 부트 쇼핑몰 프로젝트 with jpa] 프로젝트 생성 (0) | 2022.09.16 |