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 中的最后一行。
根据 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 中的最后一行。