2016년 10월 26일 수요일

[자바교육,JPA교육,스프링교육_탑크리에듀]#3.스프링부트,Spring Data JPA게시판(모델클래스작성및테이블생성)

#3.스프링부트,Spring Data JPA게시판(모델클래스작성및테이블생성)

도메인 모델 객체 생성하기<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

n  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.PrePersist;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import lombok.Getter;
import lombok.Setter;


@Entity
@Getter
@Setter
// 시퀀스의 시작값은 1
// 시퀀스의 기본 allocationSize50, 번호가 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;                
                     
           @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, columnDefinition = "date default sysdate")
           @Temporal(TemporalType.TIMESTAMP)
           protected Date regdate = new Date();      
          
           @Column(nullable=false, columnDefinition = "number(5) default 0")
           protected Integer readcount = 0;
          
           // 답변인경우 어느글의 답변인지 상위글번호
           // 최상위글인 경우 자신의 글번호 동일하다.
           // 리스트보기에서 정렬시 우선적으로 reply로 정렬
           @Column(nullable=false, columnDefinition = "number(5)")
           protected Integer reply = 0 ;
          
           // 글아래 모든 답변들에 대해 reply_level과 관계없이 1씩 증가   
           @Column(nullable=false, columnDefinition = "number(5) default 0")
           protected Integer replystep = 0;
          
           // 1,2차 답글인지 여부
           // 하나의 글에 답변이 두개면 그 두답변은 reply_level이 같다.
           // 리스트보기에서 reply_level에 따라 들여쓰기를 한다.
           @Column(nullable=false,columnDefinition = "number(5) default 0", length=10)
           protected Integer replylevel = 0;
}
n  프로젝트에서 마우스 우측버튼 -> Run As -> Spring Boot App로 실행 후 오라클쪽에 테이블이 생성되는 것을 확인하자.

댓글 없음:

댓글 쓰기