在 TypeORM 和 NodeJS 中加入表

Posted

技术标签:

【中文标题】在 TypeORM 和 NodeJS 中加入表【英文标题】:Join Tables in TypeORM & NodeJS 【发布时间】:2020-05-06 00:01:04 【问题描述】:

我创建了 TypeORM 实体类别和子类别

Category.ts

@Entity()
export class Category 

  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  description: string;

  @OneToMany(() => Subcategory, (subcategory) => subcategory.category)
  public Subcategories: Subcategory[];

  @OneToMany(() => Item, (item) => item.category)
  public Items: Item[];


Subcategory.ts

import 
  Entity,
  PrimaryGeneratedColumn,
  Column,
  ManyToOne,
  OneToMany,
  CreateDateColumn,
  UpdateDateColumn
 from "typeorm";
import Category from "./Category";
import Item from "./Item";

@Entity()
export class Subcategory 

  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  description: string;

  @ManyToOne(() => Category, (category) => category.Subcategories)
  public category: Category;

  @OneToMany(() => Item, (item) => item.subcategory)
  public Items: Item[];


在 TypeScript 上获取类别查询:

await getRepository(Category).find();

问题:

我无法在线找到将子类别包含到 getCategory 查询中的方法,我只需执行一个简单的连接即可获得所有类别及其子类别。在实体框架中,我曾经使用过 Category.Includes(Subcategories) 之类的东西,它可以完成这项工作。

在 TypeORM / NodeJS 中加入表格是否有任何简单/简单的方法?

非常感谢您花时间阅读我的问题,非常感谢!

【问题讨论】:

【参考方案1】:

在查阅了不同的教程后,我发现这种方式非常适合我的需要:

const categories = await getRepository(Category).find(relations: ['Subcategories']);

【讨论】:

非常感谢!!对我来说效果很好!【参考方案2】:
const categories = await getRepository(Category).createQueryBuilder("ct").
innerJoinAndSelect("ct.Subcategories", "sb").getMany()

参考以下文档https://typeorm.io/#/select-query-builder

【讨论】:

以上是关于在 TypeORM 和 NodeJS 中加入表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 r2dbc 中加入表?

在 MySQL 中加入表的转置

如何在名称作为参数提供的用户定义函数中加入表?

如何在 Rails 3 中加入表并计算记录?

通过在 iOS 中加入表从 Firebase 获取数据

有没有办法限制在 spark sql 中加入表时读取的数据?