typescript TypeORM查询生成器,具有获取、跳过和排序依据

brccelvz  于 2023-03-04  发布在  TypeScript
关注(0)|答案(1)|浏览(209)

我有一个使用Typeorm并实现分页逻辑的NestJs服务的问题。
当我在使用QueryBuilder执行的查询中使用limit和offset时,它不会返回所有结果(例如limit 10只返回8个结果)--但是它确实可以工作,这意味着关系没有Map,但仍然会被过滤,orderby会根据关系字段排序,而不Map它。
当我在关系列I innerJoin上使用order by时,它会有问题。
例如:

querybuilder = querybuilder.innerJoin(profile.service, service)

然后尝试

queryBuilder = queryBuilder.orderBy("service.price", "ASC")

它返回一个错误
列独特别名. service_price不存在
这是因为看起来您必须leftJoinAndSelect关系才能将字段别名包含在查询中。
我不想选择关系,而只想选择基本实体。有什么办法吗?
作为分页实用程序的限制和偏移不是一个选项,因为在文档本身中,它说在将连接附加到查询时不要使用它们。

ekqde3dh

ekqde3dh1#

您必须使用take和skip来代替offset和limit,但是在组合leftjoin + take + skip + orderBy+addorderby这样的函数时,typeOrm是有问题的,请谨慎使用它并测试每一步。

相关问题