[英]How to query data in mutiple @ManyToMany in Nest.js
眾所周知,使用relations
來查詢具有ManyToMany
關系的數據。 但是如何在多個ManyToMany
查詢? 可能你很困惑,請讓我為你解釋。
@Entity()
export class Article {
@ManyToMany(type => Classification, classification => classification.articles)
classifications: Classification[];
@ManyToMany(type => User, user => user.articles)
users: User[];
}
@Entity()
export class Classification {
@ManyToMany(type => Article, article => article.classifications)
@JoinTable()
articles: Article[];
}
@Entity()
export class User {
@ManyToMany(type => Article, article => article.users)
@JoinTable()
articles: Article[];
}
現在我想使用classificationRepository
來查詢與Article
相關的數據,並且Article
應該與User
。
但不知道如何做到這一點。
您可以將多個連接添加到一起。 首先,加入文章,然后在您的第二次加入中為用戶引用文章:
this.categoryRepository.createQueryBuilder('classification')
.leftJoinAndSelect(
'classification.articles',
'article',)
.leftJoinAndSelect(
'article.users',
'user')
.where('article.id = :id', { id: '1' })
.getMany();
如果文章與類別具有雙向多對多關系,並且您想獲取某個類別的文章。 您可以加載類別上的文章,然后返回它們
const category = await this.categoryRepository.findOne(params.id, {
relations: ["articles"]
});
return category.articles
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.