postgresql FindOne函数无法与Postgres一起使用

kpbpu008  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(3)|浏览(153)

公司.服务.ts:

async get(id: FindOneOptions<Company>): Promise<Company | null>{    
console.log(id)
return await this.companyRespository.findOne(id);
}

company.controller.ts:

@Get(':id')
  findOneCompany(@Param('id') id: FindOneOptions<Company>){
    return this.companyService.get(id);
 }

我已经写了下面的代码,但每当我试图通过FindOne我的控制台说,“你必须提供选择条件,以找到一个单行。"我尝试了所有可能的解决方案,包括在网上添加花括号,也使用其他FindOptions似乎没有什么使这个错误消失。我的API平台显示一个内部服务器错误。

gupuwyp2

gupuwyp21#

async get(id: FindOneOptions<Company>): Promise<Company | null>{    
console.log(id)
return await this.companyRespository.findOne({id: id});
}
cbeh67ev

cbeh67ev2#

如果它是一个id,我不知道为什么它的类型是一个接口。我想这就是为什么你有vscode告诉你这是一个错误。你应该像@DinuMinhea说的那样:
service.ts

async get(id: string | number): Promise<Company | null>{    
console.log(id)
return await this.companyRespository.findOne({where: {id}});
}

company.controller.ts:

@Get(':id') findOneCompany(@Param('id') id: string | number){ 
    return this.companyService.get(id); 
  }
zqry0prt

zqry0prt3#

请尝试指定您要搜寻的实体字段。在您的情况下,这是id

  • 公司.服务.ts*
...
async get(id: string | number): Promise<Company | null>{    
    console.log(id)
    return await this.companyRespository.findOne({ id });
}

相关问题