Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据mongoRepository查询排序_Java_Spring_Mongodb_Spring Data_Spring Data Mongodb - Fatal编程技术网

Java Spring数据mongoRepository查询排序

Java Spring数据mongoRepository查询排序,java,spring,mongodb,spring-data,spring-data-mongodb,Java,Spring,Mongodb,Spring Data,Spring Data Mongodb,我想看看如何在我已有的存储库方法中的查询注释中引入排序。 我已经在谷歌和这里看到了这段代码,但我无法让它工作 @Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)") Job findOneActiveOldest(); @Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }") Job findOneActiveOldest(); 我知道使用分页可以实现

我想看看如何在我已有的存储库方法中的查询注释中引入排序。 我已经在谷歌和这里看到了这段代码,但我无法让它工作

@Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)")
    Job findOneActiveOldest();

@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }")
Job findOneActiveOldest();
我知道使用分页可以实现,但在某些情况下我不需要分页,所以我想知道如何使用查询注释实现


有什么建议吗?

我认为用@Query注解是不可能的。如果不需要分页,只需使存储库方法使用排序参数:

@Query({state:'ACTIVE'})
作业查找活动(排序);
并使用它:

yourRepository.findOneActive(新排序(Sort.Direction.DESC,“created”))

如果您还想进行分页,则使用可分页作为方法参数,而不是排序。请尝试以下代码:

@Query("{ state:'ACTIVE' }")
Job findOneActive(Pageable pageable);

yourRepository.findOneActive(new PageRequest(0, 1, new Sort(Sort.Direction.DESC,"created")));

只需使用
@Query
注释的sort参数即可。1=ASC,-1=DESC

    @Query(
        value  = ...,
        sort = "{'details.requestTime': -1}"
    )

有什么问题吗?为什么你不能让它不工作呢?第一个JSONParse异常,第二个不返回任何东西。这不是你的问题吗?不,看一下这个问题的第二个答案,仔细阅读我的问题/回答。这是一个很好的解决方案。谢谢!。我仍然无法相信bas是如何为Mongo提供查询注释的。这是真的,它仍然有改进的地方。好消息是Spring源代码在github上,所以您可以随时编写增强代码并使用它创建pull请求。如果我真的需要分页,该怎么办?@MaciejWalkowiak如何对此进行限制。请注意,如果使用“限制”和“偏移”,它将不起作用,这是解决方法。如何执行“分组依据”?这是正确的回答,没有解决方法!卓越的。