TypeORM 基本连接解释

TypeORM basic join explanation

根据 typeorm guide

这部分不是很懂:

(type => Photo, photo => photo.user)

类型是什么意思? photo => photo. 是什么意思? ? .在 link.

上解释得不好

部分代码:

Import {Entity, PrimaryGeneratedColumn, Column, OneToMany} from "typeorm";
import {Photo} from "./Photo";

@Entity()
export class User {
    
    @PrimaryGeneratedColumn()
    id: number;
    
    @Column()
    name: string;
    
    @OneToMany(type => Photo, photo => photo.user)
    photos: Photo[];
}

在代码上:

const user = await createQueryBuilder("user")
    .leftJoinAndSelect("user.photos", "photo")
    .where("user.name = :name", { name: "Timber" })
    .getOne();

从哪里来的“”user.photos”?

第一题:(type => Photo, photo => photo.user)

@OneToMany 的装饰器有两个功能,第一个 returns 相关实体,第二个 returns 相关实体的 "foreign key" 属性。由于 "type" 甚至没有被使用,你实际上不需要它。我完全省略了类型 @OneToMany(()=> Photo, photo => photo.user) 对我来说不是问题。

第二题:where comes "user.photos"

leftJoinAndSelect("user.photos", "photo") 引用了用户实体中定义的 属性 photos。这是用户 class 中的最后一行。