Closed art1c0 closed 1 year ago
what package version and db driver are you using?
version 4.12.1, postgresql
can you submit a PR with a test case showing the problem?
no, sorry, i don't use the package anymore - it has too many bugs... i wrote similar myself in a few hours.
Seem I have a similar problem.
import { CreateDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
export class BaseEntity {
@PrimaryGeneratedColumn('uuid')
id: string;
@CreateDateColumn({
type: 'timestamp',
default: () => 'CURRENT_TIMESTAMP(6)',
})
createdAt: Date;
@UpdateDateColumn({
type: 'timestamp',
default: () => 'CURRENT_TIMESTAMP(6)',
onUpdate: 'CURRENT_TIMESTAMP(6)',
})
updatedAt: Date;
}
import { PaginateConfig } from 'nestjs-paginate';
import { UserEntity } from '../entities/user.entity';
export const PAGINATE_USER_CONFIG: PaginateConfig<UserEntity> = {
relations: ['roles'],
select: [
'id',
'phone',
'email',
'createdAt',
'updatedAt',
'emailValidated',
'phoneValidated',
'avatar',
'realName',
'username',
'status',
'roles',
],
sortableColumns: ['createdAt', 'updatedAt'],
};
import { BaseEntity } from 'src/common/entities/base.entity';
import { UserStatusEnum } from 'src/common/enums/user-status.enums';
import { RoleEntity } from 'src/role/entities/role.entity';
import { Column, Entity, Index, JoinTable, ManyToMany, PrimaryGeneratedColumn } from 'typeorm';
@Index(['email', 'phone', 'id'])
@Entity('user')
export class UserEntity extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({
default: '未命名用户',
})
username: string;
@Column({
nullable: true,
})
realName?: string;
@Column()
password: string;
@Column({
nullable: true,
unique: true,
})
email?: string;
@Column({
unique: true,
})
phone: string;
@Column({
nullable: true,
})
weChatId?: string;
@Column({
nullable: true,
})
avatar?: string;
@Column({
type: 'enum',
default: UserStatusEnum.notActivated,
enum: UserStatusEnum,
})
status: UserStatusEnum;
@Column({
default: false,
})
phoneValidated: boolean;
@Column({
default: false,
})
emailValidated: boolean;
@JoinTable()
@ManyToMany(() => RoleEntity, (roleEntity) => roleEntity.users, {
cascade: true,
})
roles: RoleEntity[];
}
import { BaseEntity } from 'src/common/entities/base.entity';
import { PermissionEntity } from 'src/permission/entities/permission.entity';
import { UserEntity } from 'src/user/entities/user.entity';
import { Column, Entity, Index, JoinTable, ManyToMany, ManyToOne } from 'typeorm';
@Entity('role')
@Index(['id'])
export class RoleEntity extends BaseEntity {
@Column({
unique: true,
})
name: string;
@Column({
nullable: true,
})
description?: string;
@Column({
default: true,
})
editable: boolean;
@ManyToMany(() => UserEntity, (user) => user.roles)
users: UserEntity[];
@JoinTable()
@ManyToMany(() => PermissionEntity, (permission) => permission.roles)
permissions: PermissionEntity[];
}
@Get()
@ApiOperation({ summary: '获取所有用户' })
@PaginatedSwaggerDocs(UserEntity, PAGINATE_USER_CONFIG)
async findAll(@Paginate() query: PaginateQuery) {
return await this.userService.findAll(query);
}
async findAll(query: PaginateQuery) {
return paginate(query, this.userEntityRepository, PAGINATE_USER_CONFIG);
}
{
"nestjs-paginate": "^8.6.0",
"@nestjs/typeorm": "^10.0.1",
"pg": "^8.11.3",
}
pgsql: postgres:16
@ppetzold may reopen this?
@gylove1994 can just ask you the same - could you open a PR with a test showcasing the problem?
ok, i will try.
@ppetzold added.
If using parameter
select
with valueplans
- it works as expected by loadingpayor
entity withplans
relation. If using it with valueid,plans
- errorcolumn payor.plans does not exist
. If using it with valueid, plans
(with a space after the comma) - errorcolumn distinctAlias.payor_name does not exist
.