请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

报错:You must provide selection conditions in order to find a single row

async getLatestOne() {
    let firstSchema;
    try {
      firstSchema = await this.schemaModel.findOne({
        order: { id: 'DESC' },
      });
    } catch (e) {
      console.log('错误', e);
    }
    return firstSchema;
  }

现在typeorm直接这么写order的话,会报下面的错误
图片描述
后来翻看他们的代码提交发现他们在前段时间刚添加了校验,没有where属性,就报错,但是这个校验在ts的type里是where?:可选的
图片描述

图片描述

不知道是有意为之,还是一个bug

正在回答 回答被采纳积分+3

4回答

johnny_2008 2023-04-26 21:14:00
import { Not, IsNull } from 'typeorm';
const schema = await this.schemaModel.findOne({
      where: {
        id: Not(IsNull()),
      },
      order: {
        id: 'DESC',
      },
});

添加 id 不为空的 where 条件即可

0 回复 有任何疑惑可以回复我~
犀利喵喵怪 2022-09-27 11:24:38

https://img1.sycdn.imooc.com//szimg/63326cdd0955cbde09850049.jpg

我也遇到了同样的问题

0 回复 有任何疑惑可以回复我~
Smile爱学习 2022-09-11 20:02:50

我也遇到同样的问题,这是是Bug吗? 过了很长时间还没人去修复。

。。

0 回复 有任何疑惑可以回复我~
  • 我用find这个方式来实现了,不知道会不会很浪费性能?
    const schema = await this.schemaModel.find({
          order: {
            id: 'desc',
          },
          skip: 0,
          take: 1,
        });
    回复 有任何疑惑可以回复我~ 2022-09-11 20:09:29
Dell 2022-07-10 21:44:13

很可能是 bug

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信