我正在使用Java中的MongoDB,我有这一行来检索一些数据:
@Query("{'buyerId': ?0, 'status': ?1 }")
Page<CardOrder> getBuyerOrders(final String profileId, final Pageable pageable);
我想按“创建”字段对它们进行排序。
{"created": 1}
如何在@Query注释中合并这两个查询?
(i.e @Query("{'buyerId': ?0, 'status': ?1 }{"created": 1}"))
感谢。
答案 0 :(得分:4)
不确定是否可以在@Query
注释中合并两者,但是您可以通过将其添加到查询方法并动态地使您的存储库方法使用 Sort
参数 Sort
实例中的管道,将应用于@Query
中定义的查询:
@Query("{ buyerId: ?0, status: ?1 }")
List<Thing> findThingsByUserIdAndStatus(String buyerId, String status, Sort sort);
调用方法:
repository.findThingsByUserIdAndStatus("foo", "ACTIVE", new Sort(Sort.Direction.DESC, "created"));
- 更新 -
要使用Pageable排序,请将排序实例作为参数添加到Pageable对象:
PageRequest request = new PageRequest(0, 1, new Sort(Sort.Direction.DESC, "created"));
repository.getBuyerOrders("foo", request);