【问题标题】:Merging entities in TypeORM在 TypeORM 中合并实体
【发布时间】:2020-12-11 20:08:52
【问题描述】:

我是 TypeORM 和数据库的新手,我有一个简单的问题。

“合并”实体的方法是什么? 例如:

我有两个实体,Product 和 Producer:

@Entity()
export class Product {

    @PrimaryGeneratedColumn()
    id: number;

    @Column("int")
    producer_id: number;

    @Column()
    producer: //I want show producer data here

    @Column("varchar", { length: 255 })
    name: string;

}


@Entity()
export class Producer {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    name: string;

    @Column()
    logo: string;

}

如您所见,在 Product 实体中,我有 producer_id 属性,其中包含生产者的 ID。 当我加载产品时,我希望 TypeORM 搜索生产者,在 Product 中获取一个 Id 与 producer_id 匹配的产品并将其存储在 producer 属性中。

也许我的问题有点牵强,但我希望你能明白这一点。

感谢所有回答。

【问题讨论】:

    标签: mysql nestjs typeorm


    【解决方案1】:

    据我所知,您正在寻找一对多的关系(一个生产者很多产品)。

    从 typeorm 检查this doc 以获取更多信息。但基本上做到以下几点:

    @Entity()
    export class Product {
    
        @PrimaryGeneratedColumn()
        id: number;
    
        @Column("int")
        producer_id: number;
    
        @ManyToOne(type => Producer, producer => producer.product)
        producer: Producer
    
        @Column("varchar", { length: 255 })
        name: string;
    
    }
    
    
    @Entity()
    export class Producer {
    
        @PrimaryGeneratedColumn()
        id: number;
    
        @Column()
        name: string;
    
        @Column()
        logo: string;
    
        @OneToMany(type => Product, product => product.producer)
        products: Product[]
    }
    

    然后在您的查询中指定relations 获取:

    productRepository.find({ relations: ["producer"] });
    

    我不是typeorm的用户,但应该是这样的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2021-10-27
      • 2020-06-17
      • 2021-02-10
      • 1970-01-01
      • 2020-04-29
      • 2018-09-24
      相关资源
      最近更新 更多