Entity

suhan cho·2022년 6월 28일
0

Entity

  • 데이터베이스 테이블과 매핑되는 자바 클래스를 말한다.
  • 모델 또는 도메인 모델이라고도 부른다.

Qestion Entity

package com.mysite.sbb;

import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
public class Question {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(length = 200)
    private String subject;

    @Column(columnDefinition = "TEXT")
    private String content;

    private LocalDateTime createDate;
}
  • 엔티티를 만들기 위해 @Entity 적용 (JPA가 엔티티로 인식할 수 있다.)

@id

  • id 속성을 기본 키로 지정한다.
  • 기본 키로 지정하면 이제 id 속성의 값을 데이터베이스에 저장할 때 동일한 값으로 저장 불가
  • 고유 번호를 기본키로 한 이유는 고유 번호는 엔티티에서 각 데이터를 구분하난 유효한 값으로 중복되면 안 되기 때문

@GeneratedValue

  • 데이터를 저장할 때 해당 속성에 값을 따로 세팅하지 않아도 1씩 자동으로 증가 저장
  • strategy는 고유번호를 생성하는 옵션으로 GenerationType.IDENTITY는 해당 컬럼만의 독립적인 시퀀스를 생성하여 번호를 증가시킬 때 사용

@Column

  • 컬럼의 세부 설정을 위해 사용
  • length는 컬럼의 길이를 설정할 때 사용
  • columnDefinition은 컬럼의 속성을 정의할 때 사용
  • columnDefinition = "TEXT"은 내용처럼 글자 수를 제한할 수 없는 경우

Answer Entity

package com.mysite.sbb;

import javax.persistence.*;
import java.time.LocalDateTime;

@Entity
public class Answer {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    @Column(columnDefinition = "TEXT")
    private String content;
    
    private LocalDateTime createDate;
    
    private Question question;
    
}

profile
안녕하세요

0개의 댓글