Spring 일지 #26 (20210914) 화면 구현(물품 entity, 저장소 등록)
26. 물품 entity, 저장소 등록
-entity 등록
*item entity 등록(Item.java)
package com.example.entity;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.format.annotation.DateTimeFormat;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Entity
@Getter
@Setter
@ToString
@NoArgsConstructor
@Table(name = "ITEM")
@SequenceGenerator(name = "SEQ1", sequenceName = "SEQ_ITEM_NO", initialValue = 1, allocationSize = 1)
public class Item {
@Id // 기본키
@Column(name = "NO") // 칼럼명 : Number
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ1") // 시퀀스의 값으로 추가됨
private Long no;
@Column(name = "NAME", length = 100) // 물품명 VARCHAR2(100)
private String name;
@Lob // String 타입이면 clob, byte[] 이면 blob
@Column(name = "CONTENT") // CLOB 길이가 아주 긴 문자열
private String content;
@Column(name = "QUANTITY")
private Long quantity;
@Column(name = "PRICE")
private Long price;
// 날짜타임 포멧 설정
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@CreationTimestamp
@Column(name = "REGDATE")
private Date regdate;
@ManyToOne // 판매자 정보
@JoinColumn(name = "SELLER")
private Member member;
}
*테이블 확인, 시퀀스 생성(오라클)
**address 때와 같이 시퀀스가 자동으로 생성되지 않았다면 수동으로 생성한다.
**시퀀스 등록 시 '캐쉬 없음'을 체크하면 순차적으로 나열된다.
*저장소 생성(ItemRepository.java)
package com.example.repository;
import java.util.List;
import com.example.entity.Item;
import com.example.entity.ItemProjection;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ItemRepository extends JpaRepository<Item, Long> {
}