accord pour guider le typeorm: https://github.com/typeorm/typeorm/blob/master/docs/select-query-builder.md#inner-and-left-joins
Je ne comprends pas très bien cette partie:
(type => Photo, photo => photo.user)
que veut dire type? que signifie photo => photo. ? . ce n'est pas bien expliqué sur le lien.
Code partiel:
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[];
}
et sur le code:
const user = await createQueryBuilder("user")
.leftJoinAndSelect("user.photos", "photo")
.where("user.name = :name", { name: "Timber" })
.getOne();
d'où vient "" user.photos "?
Première question: (type => Photo, photo => photo.user)
Le décorateur de @OneToMany
Prend deux fonctions, la première renvoie l'entité associée, la seconde renvoie la propriété "clé étrangère" de l'entité associée. Puisque "type" n'est même pas utilisé, vous n'en avez en fait pas besoin. J'omets complètement le type en utilisant @OneToMany(()=> Photo, photo => photo.user)
Cela n'a pas été un problème pour moi.
Deuxième question: where comes "user.photos"
La leftJoinAndSelect("user.photos", "photo")
fait référence à la propriété photos
définie dans l'entité User. C'est la dernière ligne de la classe User.