=> 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; // 수정자
}