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 |