簡體   English   中英

在 TypeORM 和 NodeJS 中連接表

[英]Join Tables in TypeORM & NodeJS

我創建了 TypeORM 實體類別和子類別

類別.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[];

}

子類別.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 中的表?

非常感謝您花時間閱讀我的問題,我很感激!

在查找了不同的教程后,我發現這種方式非常適合我的需要:

const categories = await getRepository(Category).find({relations: ['Subcategories']});
const categories = await getRepository(Category).createQueryBuilder("ct").
innerJoinAndSelect("ct.Subcategories", "sb").getMany()

參考以下文檔
https://typeorm.io/#/select-query-builder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM