typescript - TypeORM - findAll-metode for å finne alle artikler til en bruker


Jeg vil finne alle artikler fra en bruker fra TypeORM-pakken.

På Sequelize har jeg dette:

async findAllByUser(userUuid: string, findOptions: object): Promise<Article[]> {
    return await Article.findAll<Article>({
        include: [{
            model: User,
            where: {
                uuid: userUuid
            }
        }]
    });
}

Jeg vil gjerne ha et alternativ til TypeORM.

Svar #1

Du kan bli med hvis forholdet ble definert i modellen

export class Article {
    /// ... other columns

    @ManyToOne(type => Author, author => author.articles)
    author: Author;
}

Det er to måter å spørre på: find*-metoden eller QueryBuilder

// find*

createConnection(/*...*/).then(async connection => {

    /*...*/
    let articleRepository = connection.getRepository(Article);
    let articles = await articleRepository.find({ relations: ["author"] });

}).catch(error => console.log(error));
// Query Builder
const articles = await connection
    .getRepository(Article)
    .createQueryBuilder("article") 
    .leftJoinAndSelect("article.author", "user")
    .getMany();

Du kan lese dokumentasjonen for mer detalj

Relaterte artikler