Spring Mongo 使用 MongoRepository 排序的分页
Spring Mongo Paging with sorting with MongoRepository
文档结构 - message{obj_id,post_id,message_time,message_text} 和@key 是 obj_id.
问题陈述:我只想获取所有包含 post_id: 'anything' 并在message_time 的基础,每次都希望在结果中进行自定义分页。现在我正在根据link:实现下面提到的代码。但是找不到每次搜索结果时应该在哪里给出不同的post_id。
请查看下面的代码。
public interface MessageMongoRepository extends
MongoRepository<Message, String> {
@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostIdSorted(Pageable pageable);
}
服务:
@Override
public List<Message> getByPostId(String PostId, int page, int size) {
List<Message> messages = new ArrayList<>();
@SuppressWarnings("deprecation")
PageRequest request = new PageRequest(page, size, new Sort(Sort.Direction.DESC, "message_time"));
messages = messageRepository.findByPostIdSorted(request).getContent();
return messages;
}
我想这就是您要找的:
存储库:
@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostId(String postId, Pageable pageable);
服务
messages = messageRepository.findByPostId(postId, request).getContent();
您可以将 postId 传递给存储库中定义的方法
文档结构 - message{obj_id,post_id,message_time,message_text} 和@key 是 obj_id.
问题陈述:我只想获取所有包含 post_id: 'anything' 并在message_time 的基础,每次都希望在结果中进行自定义分页。现在我正在根据link:实现下面提到的代码。但是找不到每次搜索结果时应该在哪里给出不同的post_id。
请查看下面的代码。
public interface MessageMongoRepository extends
MongoRepository<Message, String> {
@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostIdSorted(Pageable pageable);
}
服务:
@Override
public List<Message> getByPostId(String PostId, int page, int size) {
List<Message> messages = new ArrayList<>();
@SuppressWarnings("deprecation")
PageRequest request = new PageRequest(page, size, new Sort(Sort.Direction.DESC, "message_time"));
messages = messageRepository.findByPostIdSorted(request).getContent();
return messages;
}
我想这就是您要找的:
存储库:
@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostId(String postId, Pageable pageable);
服务
messages = messageRepository.findByPostId(postId, request).getContent();
您可以将 postId 传递给存储库中定义的方法