TypeORM-findAll方法查找用户的所有文章

时间:2018-08-11 14:51:57

标签: typescript typeorm

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

续集上,我有以下内容:

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

我想使用 TypeORM 的替代方法。

1 个答案:

答案 0 :(得分:1)

如果关系是在模型中定义的,则可以加入

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();

您可以阅读documentation以获得更多详细信息