在 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 中加入表的主要内容,如果未能解决你的问题,请参考以下文章