7. Column Annotation & Property

수원 개발자·2023년 12월 1일
0

NestJS

목록 보기
9/15
post-thumbnail

Annotation

	@PrimaryGeneratedColumn()
    -> 자동 생성하는 primary 값

    @PrimaryColumn()
    -> 직접 입력해야하는 primary

Primary에 대해 값이 자동으로 생성되는 값과 직접 입력해야하게 설정하는 어노테이션이 있다.

@PrimaryGeneratedColumn()
        // PrimaryGeneratedColumn -> 순서대로 올라간다
        //
        // // UUID
        // // asdf1234-asdfq34t-asdfwherth-asfdf34r
        // // 알고리즘을 통해 겹치지 않는 랜덤 값 생성

이번에는 자동으로 생성되지만 순서대로 1부터 +1해서 순서대로 올라가는 PrimaryGeneratedColumn과 UUID를 사용해 수학 알고리즘을 통해 겹치지 않는 랜덤 값을 생성하는 방법도 있다.

    // 데이터 생성 일자
    @CreateDateColumn()
    createdAt: Date;

데이터가 생성되는 날짜와 시간이 자동으로 찍힌다.

    // 데이터 업데이트

    @UpdateDateColumn()
    updatedAt: Date;

데이터가 업데이트되는 날짜와 시간이 자동으로 찍힌다.

@VersionColumn()
version: number;

데이터가 업데이트 될때마다 1씩 올라간다.
처음 생성되는 값은 1이다.
save() 함수가 몇 번 불렸는지 기억한다.

Property

@Column({
        type: "text",

데이터베이스에서 인지하는 칼럼 타입이다. 이는 자동으로 유추되지만 원래는 기입할 수 있다.

name: 'title',

데이터베이스 칼럼 이름이며 프로퍼티 이름으로 자동 유추된다.

length: 300,

값의 길이이다. 입력 할 수 있는 글자의 길이라고 생각하면 된다.

nullable: true,

null이 가능한지 기입하는 것이다.

update: true,

true면 처음 저장할 때만 값 지정 가능하다.
이후에는 값 변경 불가능하다.

select : true,

find()를 실행할 때 기본으로 값을 불러올지 설정한다. 기본값이 true다.

default : 'default value',

입력하지 않았을 때 기본 값이다. 지금은 입력하지 않으면 값이 'default value'이 된다.

unique : false,

칼럼 중에서 유일무이한 값이 되어야 하는지 설정한다.
가입할때 아이디나 이메일처럼 유일무이한 값이 되어야 할 때 이를 사용한다.

0개의 댓글

관련 채용 정보