根据类型指导: https://github.com/typeorm/typeorm/blob/master/docs/select-query-builder.md#inner-and-left-joins
这部分我不太清楚:
(type => Photo, photo => photo.user)
类型是什么意思?什么是照片=>照片。 ? 。链接上的解释不好。
部分代码:
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”来自哪里?
答案 0 :(得分:1)
第一个问题:(type => Photo, photo => photo.user)
@OneToMany
的装饰器具有两个功能,第一个返回相关实体,第二个返回相关实体的“外键”属性。由于甚至不使用“类型”,因此您实际上不需要它。我完全省略了使用@OneToMany(()=> Photo, photo => photo.user)
的输入,这对我来说不是一个问题。
第二个问题:where comes "user.photos"
leftJoinAndSelect("user.photos", "photo")
引用用户实体中定义的属性photos
。这是User类的最后一行。