createdAt, updatedAt, deletedAt 이 중복되는 Users, Workspaces 가 존재한다고 가정했을 때

 

entities/common.ts

import { CreateDateColumn, DeleteDateColumn, UpdateDateColumn } from 'typeorm';

export abstract class Timestamp {
  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;

  @DeleteDateColumn()
  deletedAt: Date | null;
}

entities/Users.ts

@Entity({ name: 'users' })
export class Users extends Timestamp {
  @PrimaryGeneratedColumn({ type: 'int', name: 'id' })
  id: number;
}

entities/Workspaces.ts

@Entity({ name: 'workspaces' })
export class Workspaces extends Timestamp {
  @PrimaryGeneratedColumn({ type: 'int', name: 'id' })
  id: number;
}

각 엔티티 별 중복되는 Column 들을 제거하기 위해 공통되는 필드를 추상 클래스로 두고 상속하여 사용하는 방식을 적용했습니다.

 

'라이브러리 & 프레임워크 > NestJS' 카테고리의 다른 글

Exception filter  (0) 2022.11.28
Validation  (0) 2022.11.28
Mapped Types  (0) 2022.11.28
[TypeORM] 마이그레이션  (0) 2022.11.27
[NestJS] 커스텀 데코레이터 만들기  (0) 2022.11.21
복사했습니다!