Как запросить данные в mutiple @ManyToMany в Nest.js - PullRequest
1 голос
/ 10 марта 2019

Как мы все знаем, используйте relations для запроса данных, которые имеют отношение ManyToMany. Но как запросить в mutiple 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.

Но не знаю, как это сделать.

1 Ответ

1 голос
/ 10 марта 2019

Вы можете добавить несколько соединений вместе.Сначала присоединитесь к статьям, а затем просмотрите ссылки на статьи во втором объединении для пользователей:

this.categoryRepository.createQueryBuilder('classification')
  .leftJoinAndSelect(
    'classification.articles',
    'article',)
  .leftJoinAndSelect(
    'article.users',
    'user')
  .where('article.id = :id', { id: '1' })
  .getMany();
...