繁体   English   中英

typeorm findOneBy 返回未找到

[英]typeorm findOneBy return Not Found

实体,我需要它有两个标识符 Id 和 _id

导出 class ScriptSequencesExecutionEntity {

@PrimaryGeneratedColumn({ name: 'id' })
_id!: string;

@ObjectIdColumn()
id: number;

@AutoMap()                                                                                                                      
@Column()
scriptSequenceId: string;
                                                                                                          
@Column({default: EnumsStatusExecution.EXECUTION_STARTED})
status: EnumsStatusExecution;

@AutoMap()                                                                                                                      
@Column()
scriptExecutionStatus: ScriptExecutionStatusType[];

@AutoMap()                                                                                                                      
@Column()
creator: string;

@AutoMap()
@Column({ length: 64 })
userUpdater: string;

@AutoMap()
@Column()
creationDate: Date;

@AutoMap()
@Column()
lastUpdatedDate: Date;

当我带着所有的疑问

[
    {
        "id": 1,
        "_id": "63cf4a193ab3e83a0cc8371b",
        "scriptSequenceId": "1",
        "status": "EXECUTION_STARTED",
        "scriptExecutionStatus": [
            {
                "scriptId": "1",
                "status": "PENDING_OF_EXECUTION",
                "executionId": "1"
            }
        ],
        "creator": "test",
        "userUpdater": "test1",
        "creationDate": "18-01-2023",
        "lastUpdatedDate": "18-01-2023"
    }
]

当我通过 id 查询时

async findOneSequence(id: number): Promise<ScriptSequencesExecutionEntity> {    
    const scriptSequencesExecution: ScriptSequencesExecutionEntity = await this.scriptSeqExecutionRepository.findOneBy({id});
    console.log('ScriptSequencesExecution', scriptSequencesExecution)  
    if (!scriptSequencesExecution) throw new NotFoundException();    
    return scriptSequencesExecution;
  }

控制台服务器启动并在端口 8000 上运行 ScriptSequencesExecution null

在 postman 中回答

{
    "statusCode": 404,
    "message": "Not Found",
    "detailsOnlyInDev": {
        "messageError": "Not Found",
        "requestPath": "/script-sequence-executions/1",
        "requestBody": {},
        "stackTrace": "NotFoundException: Not Found\n    at ScriptSequencesExecutionsService.findOneSequence (C:\\Users\\jotalvaro\\Desktop\\dev\\api-nestjs-sistequeries\\src\\apis\\script-sequence-executions\\script-sequence-executions.service.ts:79:42)\n    at processTicksAndRejections (internal/process/task_queues.js:93:5)\n    at C:\\Users\\jotalvaro\\Desktop\\dev\\api-nestjs-sistequeries\\node_modules\\@nestjs\\core\\router\\router-execution-context.js:46:28\n    at C:\\Users\\jotalvaro\\Desktop\\dev\\api-nestjs-sistequeries\\node_modules\\@nestjs\\core\\router\\router-proxy.js:9:17"
    }
}

有谁知道我做错了什么,谢谢


您应该使用 this.scriptSeqExecutionRepository.findOneById(id),findOneBy 不是 mongo 中的方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM