@Column (nullable = false)

hyunwoo·2023년 2월 6일
0

Spring (fastcampus)

목록 보기
19/27

@Column(nullable =false)

=> Not Null 이라는 뜻이다.
true가 기본값

 @Setter @Column(nullable =false) private String title; // 제목
 @Setter @Column(nullable =false) private String content; // 본문

 @Setter @Column private String hashtag; // 해시태그

위 코드와 같이 @Column(nullable = true)인 경우 (아무 옵션이 없는경우) @Column을 생략할 수 도 있다.
그러며 해당 Entity 클래스에 있는 모든 필드는 다른 @Transient 같은 언급이 없는 이상 모드 Column으로 간준한다. (자동으로 어노테이션이 있는 것으로 본다)

package com.fastcampus.projectboard.domain;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;

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

@Getter
@ToString
@Table(indexes = {      //  title, hashtag, createdAt, createdBy에 빠르게 서칭이 가능한 인덱싱을 건다.
        @Index(columnList = "title"),
        @Index(columnList = "hashtag"),
        @Index(columnList = "createdAt"),
        @Index(columnList = "createdBy"),
} )
@Entity
public class Article {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    //domain 에 관련된 내용
    private Long id;


    @Setter @Column(nullable =false) private String title; // 제목
    @Setter @Column(nullable =false, length = 10000) private String content; // 본문

    @Setter private String hashtag; // 해시태그

    //메타 데이터
    @CreatedDate @Column(nullable =false) private LocalDateTime createdAt; // 생성일시
    @CreatedBy @Column(nullable =false, length = 100) private String createdBy; // 생성자
    @LastModifiedDate @Column(nullable =false) private LocalDateTime modifiedAt; // 수정일시
    @LastModifiedBy @Column(nullable =false, length = 100) private String modifiedBy; // 수정자



}

0개의 댓글