TypeORM Entity

2020. 10. 3. 22:38DEV/TypeORM

반응형

Entity

  • 데이터베이스에 매핑되는 클래스 : Table, Collection 등

Embedded Entities

기본 생성

@Entity 로 표기하고 @Column 으로 항목 설정

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";

@Entity()
export class User {

    @PrimaryGeneratedColumn()
    id: string;

    @Column()
    firstName: string;

    @Column()
    lastName: string;

    @Column()
    isActive: boolean;

}

Import 기능

반복되는 항목을 별도 클래스로 생성하여 코드 간단화 가능

import {Column} from "typeorm";

export class Name {

    @Column()
    first: string;

    @Column()
    last: string;

}

위 클래스를 임포트해서 Entitiy에 적용

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
import {Name} from "./Name";

@Entity()
export class User {

    @PrimaryGeneratedColumn()
    id: string;

    @Column(type => Name)
    name: Name;

    @Column()
    isActive: boolean;

}

Inheritance Entities

목표 Entity 설정

@Entity()
export class Photo {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    title: string;

    @Column()
    description: string;

    @Column()
    size: string;

}

@Entity()
export class Question {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    title: string;

    @Column()
    description: string;

    @Column()
    answersCount: number;

}

Concrete Table Inheritance

추상 클래스로 공통 항목을 가진 클래스 생성

export abstract class Content {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    title: string;

    @Column()
    description: string;

}

해당 클래스를 상속 받아 적용

@Entity()
export class Photo extends Content {

    @Column()
    size: string;

}

@Entity()
export class Question extends Content {

    @Column()
    answersCount: number;

}

[REF]
TypeORM
TypeOrm 기본개념

반응형

'DEV > TypeORM' 카테고리의 다른 글

TypeORM Migration하기  (0) 2020.10.06
TypeORM Relations  (1) 2020.10.04
TypeORM Pattern  (0) 2020.10.02