web-dev-qa-db-ja.com

typeorm基本結合の説明

ガイド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」はどこから来るのですか?

5
DDave

最初の質問:_(type => Photo, photo => photo.user)_

_@OneToMany_のデコレータは2つの関数を使用します。最初の関数は関連するエンティティを返し、2番目の関数は関連するエンティティの「外部キー」プロパティを返します。 「タイプ」は使用されていないため、実際には必要ありません。 @OneToMany(()=> Photo, photo => photo.user)を使用してタイプを完全に省略しました私にとっては問題になりませんでした。

2番目の質問:_where comes "user.photos"_

leftJoinAndSelect("user.photos", "photo")は、Userエンティティで定義されたプロパティphotosを参照します。これは、Userクラスの最後の行です。

3
Splitty