Spring Data JPA查询方法报错:‘Desc’未识别,findTopOrderByIdDesc异常排查
问题原因与解决方案
嘿,这个问题其实是踩了Spring Data JPA查询方法命名规则的小坑啦!
你写的方法Quizz findTopOrderByIdDesc();里,错误地把排序关键字OrderBy拆成了Order和ByIdDesc——Spring Data JPA完全识别不了这种拆分写法,所以才会提示无法解析desc、识别不了Desc。
正确的写法应该是这样:
Quizz findTopByOrderByIdDesc();
为什么这样写就对了?
findTop:表示只返回排序后的第一条结果,也就是你要的id最大(最新插入)的那条记录;By:是Spring Data JPA查询方法里的分隔关键字,用来分隔查询条件和排序规则;OrderByIdDesc:这是完整的排序规则,OrderBy是固定的排序关键字,后面跟要排序的字段id,最后加上Desc表示降序(如果要升序就用Asc)。
另外,你也可以用findFirst替代findTop,两者效果完全一致:
Quizz findFirstByOrderByIdDesc();
这样修改之后,Spring Data JPA就能正确解析方法名,生成对应的SQL查询,拿到你想要的最新插入的Quizz实例啦~
内容的提问来源于stack exchange,提问作者Cosmin
相关产品推荐
相关产品推荐

