首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用TypeORM获取自引用关系中的数据

使用TypeORM获取自引用关系中的数据,你可以按照以下步骤进行操作:

  1. 首先,确保你已经安装了TypeORM,并且已经设置了数据库连接。
  2. 创建一个实体类,表示自引用关系的模型。在该实体类中,使用@ManyToOne装饰器定义父级关系,并使用@OneToMany装饰器定义子级关系。
代码语言:javascript
复制
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToMany } from 'typeorm';

@Entity()
export class Category {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @ManyToOne(() => Category, category => category.children)
  parent: Category;

  @OneToMany(() => Category, category => category.parent)
  children: Category[];
}

在上面的代码中,我们创建了一个名为Category的实体类,它具有一个自引用的关系。@ManyToOne装饰器定义了父级关系,@OneToMany装饰器定义了子级关系。

  1. 使用TypeORM的getRepository方法获取实体类的存储库,并使用查询方法来获取自引用关系的数据。
代码语言:javascript
复制
import { getRepository } from 'typeorm';

// 获取Category实体类的存储库
const categoryRepository = getRepository(Category);

// 获取所有顶级分类(没有父级的分类)
const topLevelCategories = await categoryRepository.find({ parent: null });

// 遍历顶级分类,并获取其子级分类
for (const category of topLevelCategories) {
  const children = await categoryRepository.find({ parent: category });
  console.log(`Category ${category.name} has children:`, children);
}

在上面的代码中,我们使用getRepository方法获取Category实体类的存储库。然后,我们使用find方法来查询顶级分类(没有父级的分类)。接下来,我们遍历顶级分类,并使用find方法查询每个顶级分类的子级分类。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【nodejs】让nodejs像后端mvc框架(asp.net mvc)一orm篇【如EF般丝滑】typeorm介绍(8/8)

在使用nodejs开发过程中,刚好碰到需要做一个小工具,需要用到数据库存储功能。而我又比较懒,一个小功能不想搞一个nodejs项目,又搞一个后端项目。不如直接在nodejs里面把对数据库的操作也做掉。 结果百度一圈下来发现nodejs这边还都是比较原始的、类似后端的通过coneection连数据库,接着open,在写sql语句干嘛干嘛的。经过后端这么多年的脚手架工具熏陶,实在懒得写这些没营养的简单增删改查sql语句了。 typeorm github地址 typeorm github地址 遂通过baidu、google找到了typeorm这个orm框架。果然不错,作者自己也说大量参考了如entityframework、hibernate、dapper等等众多orm框架。吸收了各家之所长。 更多介绍和各种示例可以参考它的demo项目,基本每个数据库都有一个demo,然后对特性也基本都介绍到的。 比如mongodb如何映射复杂对象,关系型数据怎么弄级联删除之类的功能

02
领券