【发布时间】:2022-09-27 13:15:55
【问题描述】:
有没有什么方法可以只选择没有 id 列的给定列并在 TypeORM 中使用分页(跳过、获取)。我在 NestJS 中这样做:
文章.service.ts:
async getAll(skip: number): Promise<Article[]> {
return await this.articleRepository.find({
select: {
id: false,
title: true,
description: true,
body: false,
created_at: true,
updated_at: false,
author: {
full_name: true
}
},
relations: {
author: true
},
skip: skip,
take: 10,
order: {
created_at: \'DESC\'
}
});
}
而在文章.controller.ts:
@Get(\'articles\')
async getAll(@Query(\'page\') page: number) {
if(!page) { page = 1; }
const skip = (page - 1) * 10;
const articles = await this.articlesService.getAll(skip);
return {
status: true,
articles: articles,
page: page,
}
}
我的文章实体.ts:
@Entity()
export class Article {
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 100 })
title: string;
@Column()
description: string
@Column({ type: \'text\' })
body: string;
@ManyToOne(() => User, (user) => user.articles)
author: User;
@CreateDateColumn()
created_at: string;
@UpdateDateColumn()
updated_at: string;
}
当我向此端点发送请求时,会发生错误。我认为这是因为分页(跳过,采取)。
QueryFailedError: column distinctAlias.Article_id does not exist
at PostgresQueryRunner.query (project/src/driver/postgres/PostgresQueryRunner.ts:299:19)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at SelectQueryBuilder.loadRawResults (project/src/query-builder/SelectQueryBuilder.ts:3601:25)
at SelectQueryBuilder.getRawMany (project/src/query-builder/SelectQueryBuilder.ts:1573:29)
at SelectQueryBuilder.executeEntitiesAndRawResults (project/src/query-builder/SelectQueryBuilder.ts:3295:26)
at SelectQueryBuilder.getRawAndEntities (project/src/query-builder/SelectQueryBuilder.ts:1617:29)
at SelectQueryBuilder.getMany (project/src/query-builder/SelectQueryBuilder.ts:1707:25)
at ArticlesService.getAll (project/src/articles/articles.service.ts:35:12)
at ArticlesController.getAll (project/src/articles/articles.controller.ts:56:22)
at project/node_modules/@nestjs/core/router/router-execution-context.js:46:28
但是,如果我删除跳过并选择或选择它的 id 列。有什么方法可以选择没有 id 列的其他列并一起使用分页
-
在您的表中不存在列
column distinctAlias.Article_id does not exist。检查你的 sql 查询
标签: javascript typescript nestjs typeorm