我想从 TypeORM 包中找到一位用户的所有文章。
在续集上,我有以下内容:
async findAllByUser(userUuid: string, findOptions: object): Promise<Article[]> {
return await Article.findAll<Article>({
include: [{
model: User,
where: {
uuid: userUuid
}
}]
});
}
我想使用 TypeORM 的替代方法。
答案 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以获得更多详细信息