typeorm基本联接说明

时间:2018-11-04 14:14:03

标签: typeorm

根据类型指导: 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”来自哪里?

1 个答案:

答案 0 :(得分:1)

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

@OneToMany的装饰器具有两个功能,第一个返回相关实体,第二个返回相关实体的“外键”属性。由于甚至不使用“类型”,因此您实际上不需要它。我完全省略了使用@OneToMany(()=> Photo, photo => photo.user)的输入,这对我来说不是一个问题。

第二个问题:where comes "user.photos"

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