Typeorm:对关系进行分页



我有这两个实体:

@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与typescript

当使用一个实体的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();

最新更新