符合指南类型: 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”来自哪里?
第一个问题: (type => Photo, photo => photo.user)
@OneToMany 获取两个函数,第一个返回相关实体,第二个返回相关实体的“外键”属性。因为“type”根本不用,所以你其实不需要它。我完全省略了使用 @OneToMany(()=> Photo, photo => photo.user) 对我来说不是问题。
@OneToMany
@OneToMany(()=> Photo, photo => photo.user)
第二个问题: where comes "user.photos"
where comes "user.photos"
leftJoinAndSelect("user.photos", "photo") 引用属性 photos 在用户实体中定义。这是用户类中的最后一行。
leftJoinAndSelect("user.photos", "photo")
photos