创建表
一对多表
自己本表 对应 其他表多条数据
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm";import { Content } from "./typeorm.entity";@Entity('content_2')export class UserEntity {@PrimaryGeneratedColumn()id: number@Column()name: string// 本表一个 查询 content表多个@OneToMany(() => Content, content => content.user)content: Content[]// 一个查多个肯定是数组}
多对一表
import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm";import { UserEntity } from "./user.entity";@Entity('content_1')export class Content {@PrimaryGeneratedColumn()id: number;@Column()name: string// 本表多个 查询 user表一个@ManyToOne(() => UserEntity, user => user.content)user: UserEntity}
查询数据
查询一对多
return await getRepository(UserEntity).createQueryBuilder('user').leftJoinAndSelect('user.content','content') //1.要加载的关系 ,2.关系表别名.where('user.name = :name',{name:22}).getMany()// 查询到的数据{"code": 2000,"message": "请求成功!","time": "2021-03-21T05:07:21.843Z","data": [{"id": 2,"name": "22","content": [ // 关联的content必定是数组,存放多条数据{"id": 1,"name": "111"},{"id": 2,"name": "222"}]}]}
查询多对一
本表多条数据对应其他表一条数据
return await getRepository(Content).createQueryBuilder('content').leftJoinAndSelect('content.user','user').where('content.name = :name',{name:111}).getMany()// 查询到的数据{"code": 2000,"message": "请求成功!","time": "2021-03-21T05:09:18.509Z","data": [{"id": 1,"name": "111","user": { // 对应的一条数据"id": 2,"name": "22"}}]}
疑惑
多对一表中的userid 是如何设置呢?动态填写参数?还是存储数据时候直接写死?如果小伙伴看到可以帮我解下疑惑,谢谢~~
