Типорма: paginate отношения - PullRequest
1 голос
/ 25 апреля 2020

У меня есть эти две сущности:

@Entity()
@Unique(["userName"])
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  @Length(4, 20)
  userName: string;

  @ManyToMany(type => League, league => league.members)
  leagues: League[];

}
@Entity()
export class League {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  @Length(3, 50)
  name: string;

  @Column()
  @Length(0, 200)
  description: string;

  @Column()
  @Length(4, 20)
  country: string;

  @ManyToMany(type => User)
  @JoinTable()
  members: User[];
}

Но в лиге может быть много членов, поэтому не оптимально объединять всех членов лиги в один вызов. Можно ли разбить на страницы отношение членов лиги?

Мои модели неверны?

Я использую typeorm@^0.2.24 и nodejs с машинописью

1 Ответ

0 голосов
/ 25 апреля 2020

В настоящее время не поддерживается разбиение на страницы только отношения при использовании find методов из одной сущности. В этом случае просто используйте QueryBuilder. Вы можете просмотреть документацию QueryBuilder здесь .

Итак, в этом случае вы можете использовать:

// This will be paginated
const leagueMembers = await connection
    .createQueryBuilder(User, "user")
    .leftJoin("user.leagues", "league", "league.id = :leagueId"; { leagueId })
    .orderBy("user.id")
    .skip(..)
    .take(..)
    .getMany();
...