簡體   English   中英

如何在 Nest.js 中查詢多個@ManyToMany 中的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM