node.js - 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
解决方案
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();
推荐阅读
- javascript - 回文 Java 与 JavaScript
- node.js - 带有“express-fileupload”问题的 Firebase 文件上传
- python - 如何仅使用正则表达式重现默认的 sklearn CountVectorizer 标记化?
- ms-access - 如何在访问中获得周数
- c# - Unity 2019.4.11f1:PlayerPrefs 未保存在 Android 设备上,但在 Unity 中正确保存
- android - 我该如何解决?@@@
- python - 在搜索结果中搜索 TWEEPY
- python - 如何在访问 DRF 中的其余 api 时获取用户价值?
- c++ - “错误:没有匹配的函数调用...”
- javascript - 是否可以在 javascript 中强制布尔值 true 等于 false?