【问题标题】:How to declare an entity contain another entity in typeorm?如何在 typeorm 中声明一个实体包含另一个实体?
【发布时间】:2021-08-08 10:38:59
【问题描述】:

我想在 typeorm 中声明一个实体包含另一个实体,所以我可以重用基础实体或专注于某些列,这可能吗?像这样:

export class Base {//can be re-use
    @PrimaryGeneratedColumn()
    id: number;

    @CreateDateColumn()
    created_at: Date;

    @UpdateDateColumn()
    updated_at: Date;
}

@Entity('person')//for insert/update/select
@Index(['first_name', 'last_name'], { unique: true })
export class PersonData {
    @Column()
    first_name: string;

    @Column()
    last_name: string;
}


@Entity('person')//for create table
export class Person {
    Base
    PersonData
}

【问题讨论】:

    标签: node.js typescript typeorm


    【解决方案1】:

    TypeORM permits you to extend entity classes.

    您可以如下声明您的类:

    export class Base {//can be re-use
        @PrimaryGeneratedColumn()
        id: number;
    
        @CreateDateColumn()
        created_at: Date;
    
        @UpdateDateColumn()
        updated_at: Date;
    }
    
    @Entity('person')//for insert/update/select
    @Index(['first_name', 'last_name'], { unique: true })
    export class Person extends Base {
        @Column()
        first_name: string;
    
        @Column()
        last_name: string;
    }
    

    并在别处重复使用 Base 类:

    @Entity('someotherentity')
    export class SomeOtherEntity extends Base {
        // extra columns here ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      相关资源
      最近更新 更多