如何查询多个@ManyToMany in Nest.js中的数据
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();
如果articles与分类是双向多对多关系,你想获取某个分类的articles。您可以加载类别中的文章,然后 return 它们
const category = await this.categoryRepository.findOne(params.id, {
relations: ["articles"]
});
return category.articles
众所周知,使用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();
如果articles与分类是双向多对多关系,你想获取某个分类的articles。您可以加载类别中的文章,然后 return 它们
const category = await this.categoryRepository.findOne(params.id, {
relations: ["articles"]
});
return category.articles