首页 > 解决方案 > TypeORM - findAll 方法来查找用户的所有文章

问题描述

我想从TypeORM包中找到一个用户的所有文章。

Sequelize 上,我有这个:

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

我想要TypeORM的替代品。

标签: typescripttypeorm

解决方案


如果在模型中定义了关系,您可以加入

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

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

有两种查询方式:find*方法或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();

您可以阅读文档以获取更多详细信息


推荐阅读