[TypeORM] TypeORM 엔티티 상속을 통한 중복 코드 제거

2022. 11. 26. 22:11·라이브러리 & 프레임워크/NestJS

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
'라이브러리 & 프레임워크/NestJS' 카테고리의 다른 글
  • Validation
  • Mapped Types
  • [TypeORM] 마이그레이션
  • [NestJS] 커스텀 데코레이터 만들기
rondeveloper
rondeveloper
  • rondeveloper
    Ron's learning record
    rondeveloper
  • 전체
    오늘
    어제
    • 분류 전체보기 (103) N
      • k8s (3) N
      • AWS (1)
      • 리눅스 (5)
      • Docker (8)
      • 라이브러리 & 프레임워크 (14)
        • React (2)
        • NestJS (8)
        • Spring (0)
        • Django (3)
        • FastAPI (1)
      • 웹 (2)
        • Nginx (1)
      • 프로그래밍 언어 (29)
        • HTML (0)
        • CSS (0)
        • JavaScript (21)
        • Python (3)
        • Node.js (0)
        • TypeScript (4)
        • Java (1)
      • Today I learned (9)
      • 알고리즘 (9)
        • 백준 (0)
        • 프로그래머스 (8)
        • 개념 (1)
      • 티끌모아 태산 (5)
        • 하루에 영단어 하나씩 (5)
        • 독서 (0)
      • 시행착오 (3)
      • 데이터베이스 (2)
        • MySQL (0)
      • 컴퓨터 과학 (8)
        • 네트워크 (2)
        • 운영체제 (0)
        • 데이터베이스 (2)
        • 자료구조 (4)
      • 포트폴리오 (4)
        • JJINCAFE IN SEOUL (4)
        • CODEUNICORN (0)
      • 회고 (0)
      • CICD (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    redis
    nestjs
    리눅스
    조인
    typeorm
    스택
    IP 주소
    네트워크
    Til
    도커
    생활코딩
    javascript
    레벨2
    typescript
    반복문
    Kubernetes
    모듈
    django
    컨테이너
    자바스크립트
    기초
    mysql
    코딩테스트
    배열
    iterable
    Python
    FastAPI
    Kubectl
    프로그래머스
    Docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
rondeveloper
[TypeORM] TypeORM 엔티티 상속을 통한 중복 코드 제거
상단으로

티스토리툴바