保存实体时出现空约束错误。
export abstract class BaseEntity {
@PrimaryGeneratedColumn('uuid')
id: string;
@CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
createOn: Date;
@UpdateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
updatedOn: Date;
@DeleteDateColumn({ type: 'timestamp' })
deletedOn: Date;
}
表定义:
CREATE TABLE "public"."mytable" (
"id" uuid NOT NULL DEFAULT uuid_generate_v4(),
"name" character varying(256) NOT NULL,
"createOn" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedOn" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"deletedOn" TIMESTAMP, "rawData" text NOT NULL,
CONSTRAINT "PK_a94b1ebd989b0e66e32761c1401" PRIMARY KEY ("id")
)
当我在 nestjs 中插入一个新项目时,我得到:
{
"statusCode": 400,
"message": [
"id must be a UUID"
],
"error": "Bad Request"
}
当我使用数据库客户端插入记录时,它会自动生成值。
我看过另一篇文章,但对我没有帮助。它适用于旧版本的 typeorm。
为什么 TypeOrm 不应该强制执行约束?
答案 0 :(得分:0)
问题是类验证器。添加@IsOptional
export class MyInDTO implements Readonly<MyDTO> {
@ApiProperty({ required: true })
@IsUUID()
@IsOptional()
id: string;