代码之家  ›  专栏  ›  技术社区  ›  DDave

typeorm基本连接说明

  •  1
  • DDave  · 技术社区  · 7 年前

    符合指南类型: 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 回复  |  直到 7 年前
        1
  •  16
  •   Splitty    7 年前

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

    @OneToMany 获取两个函数,第一个返回相关实体,第二个返回相关实体的“外键”属性。因为“type”根本不用,所以你其实不需要它。我完全省略了使用 @OneToMany(()=> Photo, photo => photo.user) 对我来说不是问题。

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

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