import { ChildEntity, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, TableInheritance, UpdateDateColumn } from "typeorm";
export class BaseModel {
@PrimaryGeneratedColumn()
id: number;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
// 다른 모델로 부터 상속을 받아 각자 테이블로 생성
@Entity()
export class BookModel extends BaseModel {
@Column()
name: string;
}
// 다른 모델로 부터 상속을 받아 각자 테이블로 생성
@Entity()
export class CarModel extends BaseModel {
@Column()
brand: string;
}
// Single table inheritance
@Entity()
@TableInheritance({
// @Colum 데코레이터의 역할로써, Column 을 하나 만든다
column: {
name: 'type',
type: 'varchar',
}
})
export class SingleBaseModel {
@PrimaryGeneratedColumn()
id: number;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
// 부모 테이블에 속하게되서 하나의 테이블로 합쳐진다.
@ChildEntity()
export class ComputerModel extends SingleBaseModel {
@Column()
brand: string;
}
// 부모 테이블에 속하게되서 하나의 테이블로 합쳐진다.
@ChildEntity()
export class AirplaneModel extends SingleBaseModel {
@Column()
country: string;
}
위 Entity 가 어떻게 테이블을 만들어주는지 보면...
댓글