typescript - TypeORM - findAll-metod för att hitta alla artiklar av en användare
Jag vill hitta alla artiklar från en användare från TypeORM-paketet.
I Sequelize har jag detta:
async findAllByUser(userUuid: string, findOptions: object): Promise<Article[]> {
return await Article.findAll<Article>({
include: [{
model: User,
where: {
uuid: userUuid
}
}]
});
}
Jag skulle vilja ha ett alternativ till TypeORM.
Svar #1
Du kan ansluta om relationen var definierad i modellen
export class Article {
/// ... other columns
@ManyToOne(type => Author, author => author.articles)
author: Author;
}
Det finns två sätt att göra en sökning: 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 läsa dokumentationen för mer detaljer
