#3.스프링부트,Spring Data JPA게시판(모델클래스작성및테이블생성)
도메인 모델 객체 생성하기
<!--[if !supportLists]-->n
<!--[endif]-->Jpa.board.model 패키지를
생성 후 두개의 엔티티 클래스를 만들자.
[Board.java]
package jpa.board.model;
import java.util.Date;
import java.util.List;
import
javax.persistence.CascadeType;
import
javax.persistence.Column;
import
javax.persistence.Entity;
import
javax.persistence.FetchType;
import
javax.persistence.GeneratedValue;
import
javax.persistence.GenerationType;
import
javax.persistence.Id;
import
javax.persistence.OneToMany;
import
javax.persistence.SequenceGenerator;
import
javax.persistence.Temporal;
import
javax.persistence.TemporalType;
import lombok.Getter;
import lombok.Setter;
@Entity
@Getter
@Setter
// 시퀀스의 시작값은
1
// 시퀀스의 기본 allocationSize는50, 번호가 50부터 생기므로
1로
@SequenceGenerator(name="BOARD_SEQ_GENERATOR",
sequenceName="BOARD_SEQ",
initialValue=1,
allocationSize=1)
public class Board {
// MySQL이라면 아래와 같이 기술한다.
// @Id
// @GeneratedValue
// @Column(length=10)
// protected Integer id;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="BOARD_SEQ_GENERATOR")
@Column(length=10)
protected Integer
id;
@OneToMany(mappedBy="board",
cascade=CascadeType.ALL,
fetch=FetchType.LAZY)
protected List<Datgul>
datguls;
@Column(length=20,
nullable=false)
protected String
name;
@Column(length=20,
nullable=false)
protected String
passwd;
@Column(length=500,
nullable=false)
protected String
title;
@Column(length=4000,
nullable=false)
protected String
content;
//날짜기본형식 time, day,
month, year 형태저장
@Column(nullable=false)
@Temporal(TemporalType.TIMESTAMP)
protected Date regdate;
@Column(nullable=false,
length=10)
protected Integer
readcount;
// 답변인경우 어느글의 답변인지 상위글번호
// 최상위글인 경우 자신의 글번호 동일하다.
// 리스트보기에서 정렬시 우선적으로
reply로 정렬
@Column(nullable=false,
length=10)
protected Integer
reply;
// 글아래 모든 답변들에 대해
reply_level과 관계없이 1씩 증가
@Column(nullable=false,
length=10)
protected Integer
replystep;
// 1차,2차 답글인지
여부
// 하나의 글에 답변이 두개면 그 두답변은 reply_level이 같다.
// 리스트보기에서
reply_level에 따라 들여쓰기를 한다.
@Column(nullable=false,
length=10)
protected Integer replylevel;
}
[Datgul.java]
package jpa.board.model;
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.ManyToOne;
import
javax.persistence.SequenceGenerator;
import lombok.Getter;
import lombok.Setter;
@Entity
@Getter
@Setter
// 시퀀스의
시작값은 1
// 시퀀스의
기본 allocationSize는50, 번호가 50부터 생기므로 1로
@SequenceGenerator(name="DATGUL_SEQ_GENERATOR",
sequenceName="DATGUL_SEQ",
initialValue=1,
allocationSize=1)
public class Datgul {
// MySQL이라면 아래와 같이 기술한다.
// @Id
// @GeneratedValue
// @Column(length=10)
// protected Integer id;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="DATGUL_SEQ_GENERATOR")
@Column(length=10)
protected Integer
id;
@Column(length=20,
nullable=false)
protected String
name;
@Column(length=4000,
nullable=false)
protected String
content;
@ManyToOne
@JoinColumn(name="board_id",
referencedColumnName="id",
nullable=false)
protected Board
board;
}
<!--[if !supportLists]-->n
<!--[endif]-->프로젝트에서 마우스 우측버튼 -> Run As
-> Spring Boot App로 실행 후 오라클쪽에 테이블이 생성되는 것을 확인하자.
댓글 없음:
댓글 쓰기