Contents
Board 테이블 생성Board 테이블 생성
a. 테이블 생성

package shop.mtcoding.blog.board;
import jakarta.persistence.*;
import lombok.Data;
import java.time.LocalDateTime;
@Table(name="board_tb")
@Data
@Entity // 테이블 생성하기 위해 필요한 어노테이션
public class Board { // User 1 -> Board N
@Id // PK 설정
@GeneratedValue(strategy = GenerationType.IDENTITY) // auto_increment 전략
private int id;
private String title;
private String content;
private int userId; // 테이블에 만들어 질때 user_id
private LocalDateTime createdAt;
}
createdAt은 db에서 _가 사용된 채 만들어 진다.(자바처럼 카멜 표기법을 사용하지 않아서)
@Data
를 사용하면 아래의 기능을 사용할 수 있게 된다.- @Getter
- @Setter
- @ToString
- @EqualsAndHashCode
- @RequiredArgsConstructor
- @Value
: 초기화 되지 않은 final 필드나 @NonNull이 붙은 필드에 대해 생성자를 만들어 준다.
- AllArgsConstructor
: 클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성
- NoArgsConstructor
: 파라미터가 없는 생성자를 생성
@Entity
가 붙은 클래스는 JPA가 관리해준다.- JPA를 사용해서 DB테이블과 매핑할 클래스는 @Entity를 꼭 붙여야만 매핑이 가능하다.
- 접근 제어자가 public 혹은 protected인 기본 생성자가 필수로 필요하다.
- final, enum, interface, inner 클래스에는 사용이 불가능하다.
- 저장하려는 속성이 final이 아니어야 한다.
@Table
을 사용하면 테이블 명을 정할 수 있다.
@ID
를 사용하면 PK(Primary Key)를 설정할 수 있다.
@GeneratedValue
@GeneratedValue(strategy = GenerationType.IDENTITY)는 AUTO_INCREMENT과 기능이 같다.
- 구조 이해하기(스키마 이해)
ex. 2가 적은 게시물 title은 제목4다
Share article