我想用Spring Data Mongo实现分页。有很多教程和文档建议使用PagingAndSorting Repository,如下所示:
StoryRepo extends PagingAndSortingRepository<Story, String>{}
因此,因为PagingAndSorting Repository提供了用于分页查询的api,我可以像这样使用它:
Page<Story> story = storyRepo.findAll(pageable);
我的问题是这里的findAll方法实际上是在哪里实现的?我需要自己编写它的实现吗?实现StoryRepo的StoryRepoImpl需要实现这个方法吗?
在SpringData中,您使用Spring数据使用的命名约定创建一个接口并添加一个方法,框架将生成该方法的实现。为了实现分页,我在存储库中创建了这个方法声明:
public interface PersonRepository extends MongoRepository<Person, ObjectId> {
Page<Person> findByName(String name, Pageable pageable);
}
然后,在我的服务中,我这样调用此方法:
Page<Person> persons = personRepository.findByName("Alex", PageRequest.of(0, 100));
这里,页面将包含100个元素。
我通过编写自己的实现让它工作起来,就像这样:
List<Story> stories = null;
Query query = new Query();
query.with(pageable);
stories = getTemplate().find(query, Story.class);
long total = getTemplate().count(query, Story.class);
Page<Story> storyPage = new PageImpl<Story>(stories, pageable, total);
return storyPage;
我正在处理Spring数据
您不需要实现该方法,因为当您自动连接Spring对象分页和排序存储库时,它会自动为您实现该方法。
请注意,由于您使用的是Mongob,因此您可以扩展MongoRepository。
然后在Spring,使用以下命令启用分页:
@RequestMapping(value="INSERT YOUR LINK", method=RequestMethod.GET)
public List<Profile> getAll(int page) {
Pageable pageable = new PageRequest(page, 5); //get 5 profiles on a page
Page<Profile> page = repo.findAll(pageable);
return Lists.newArrayList(page);
我正在使用Spring数据管理我的MongoDB数据库。 在一个集合中,我有两个ObjectId字段,_id和另一个引用另一个集合中的实例的字段。 我的收藏的类是这样的: 通过这样指定的类,我可以成功地将“外键”作为$OID插入。 问题是我得到了以下绑定错误: 对象“Collection A”中字段“Collection BID”上的字段错误:拒绝值[];代码[TypeMismatch.Colle
我有一个Spring Boot和嵌入式Mongo DB的项目,我也想查找存储在那里的数据。我学习了本教程https://springframework.guru/spring-boot-with-embedd-mongoDB/
我正在玩Spring数据Mongo查询,并想知道字段属性参数。以下是我从文档中获得的示例: 问题是:在{“firstname”:1,“lastname”:1}中,1的含义是什么?
文档结构-消息{obj_id,post_id,message_time,message_text}和@key是obj_id。 问题声明:我只想要fetch all the data包含post_id:'anything'并基于message_time进行排序,并且每次都想在结果中进行自定义分页。现在,我正在根据以下链接实现代码:https://stackoverflow.com/a/1007753
我有一个使用Spring Data MongoDB 1.4.2完美运行的项目。我试图更新到1.5.0,但在自动布线(摘录)过程中出现此错误: 原因:组织。springframework。数据mongodb。果心指数MongopersistentyIndexResolver$CyclicPropertyReferenceException:在路径“Filter”的类型“Filter”中找到字段“ru
看看有没有人能帮上忙。 我想使用Spring数据mongodb的存储库,我想使用查询注释来过滤按值A=10或A=20查找的数据 很明显,“试着做一个AND,我需要一个OR。 有什么想法吗?