spring data jpa分页

controller层

 1 @RequestMapping(value="/search")
 2     @ResponseBody
 3     public String search(HttpServletRequest request,int pageIndex,int size) {
 4         HttpSession session = request.getSession();
 5         User user = (User)session.getAttribute("user");
 6         Page<Message> page = onlineMessageService.pageFind(user,pageIndex, size);
 7         Map<String, Object> tableMap = new HashMap<String, Object>();
 8         tableMap.put("total", page.getTotalElements());
 9         tableMap.put("messages", page.getContent());
10         return ResponseJSON.instance().setData(tableMap).toJSON();
11
12     }

service层

 1 @Transactional
 2     public Page<Message> pageFind(final User user,int pageIndex,int size) {
 3         Specification<Message> messgeSpeci = new Specification<Message>() {
 4             @Override
 5             public Predicate toPredicate(Root<Message> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
 6                 List<Predicate> predicates = new ArrayList<Predicate>();
 7                 predicates.add(cb.equal(root.get("user").<String>get("status"),"1"));
 8                 predicates.add(cb.equal(root.<String> get("isOnlineRead"),"0"));
 9                 query.where(predicates.toArray(new Predicate[] {}));
10                 return null;
11             }
12         };
13         return MessageRepository.findAll(messgeSpeci, new PageRequest(pageIndex,size));
14     }

持久层接口继承

1 public interface MessageRepository extends JpaRepository<Message, Long> ,JpaSpecificationExecutor<Message>{.....}

  

时间: 2024-10-20 08:14:05

spring data jpa分页的相关文章

Spring data Jpa 分页从1开始,查询方法兼容 Mybatis,分页参数兼容Jqgrid

废话少说 有参数可以设置 在org.springframework.boot.autoconfigure.data.web.SpringDataWebProperties 中 /** * Whether to expose and assume 1-based page number indexes. Defaults to "false", * meaning a page number of 0 in the request equals the first page. */ pr

spring data jpa 分页查询

法一(本地sql查询,注意表名啥的都用数据库中的名称) public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1", countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1", nativeQuery

整合Spring Data JPA与Spring MVC: 分页和排序

之前我们学习了如何使用Jpa访问关系型数据库.比较完整Spring MVC和JPA教程请见Spring Data JPA实战入门,Spring MVC实战入门. 通过Jpa大大简化了我们对数据库的开发工作.但是,之前的例子中我们只提到了最简单的CRUD(增删改查)操作.实际上,Spring Data Jpa对于分页以及排序的查询也有着完美的支持,接下来,我们来学习如何通过Pageable来对数据库进行分页查询. 添加maven依赖 首先我们需要引入Jpa,数据库直接使用hsqldb内存数据库就可

Spring Data Jpa 实现分页(Spring MVC+easyui)

spring data jpa很好的对dao层进行了封装,这篇文章主要来写的是实现easyui datagird数据分页,由于各个UI参数不大一样,所以如果使用的是其他UI,得稍作修改.需要说明的是我的代码是在spring mvc框架下的部分代码,部分结构的代码为给出,只给出关键代码. 首先,easy ui向服务端发送请求时,会自动返回4个参数(page,rows,order,sort),先写一个PageContent类: package module.system.entity; import

Spring data JPA 理解(默认查询 自定义查询 分页查询)及no session 两种处理方法

简介:Spring Data JPA 其实就是JDK方式的动态代理 (需要一个接口 有一大堆最上边的是Repository接口来自org.springframework.data.repository,还有CrudRepository接口及一个实现类SimpleJpaRepository),只要有接口就可以查询数据库了,实际上就是proxy的方法,具体查询的方法有两种一种是简单式就是方法名为findBy+属性名+(AndOrIsEquals等)另一种是自定义的方法就是属性名是瞎起的向abc xy

Spring Data JPA native query 分页

Mysql Spring Data JPA and native queries with pagination Spring Data and Native Query with pagination public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "select * from users order by id desc \n#pageable\n",

使用Spring Data JPA进行数据分页与排序

一.导读 如果一次性加载成千上万的列表数据,在网页上显示将十分的耗时,用户体验不好.所以处理较大数据查询结果展现的时候,分页查询是必不可少的.分页查询必然伴随着一定的排序规则,否则分页数据的状态很难控制,导致用户可能在不同的页看到同一条数据.那么,本文的主要内容就是给大家介绍一下,如何使用Spring Data JPA进行分页与排序. 二.实体定义 我们使用一个简单的实体定义:Article(文章) @Data @AllArgsConstructor @NoArgsConstructor @Bu

随便说说Spring Data JPA(包含分页,复合查询)

最近没事做,闲着也是闲着,随便写写,自己说说,不提供参考价值. Spring Data JPA是Spring Data家族的一部分,可以轻松实现基于JPA的存储库. 此模块处理对基于JPA的数据访问层的增强支持. 它使构建使用数据访问技术的Spring驱动应用程序变得更加容易. 在相当长的一段时间内,实现应用程序的数据访问层一直很麻烦. 必须编写太多样板代码来执行简单查询以及执行分页和审计. Spring Data JPA旨在通过减少实际需要的工作量来显著改善数据访问层的实现. 作为开发人员,您

【Spring Data 系列学习】Spring Data JPA 自定义查询,分页,排序,条件查询

Spring Boot Jpa 默认提供 CURD 的方法等方法,在日常中往往时无法满足我们业务的要求,本章节通过自定义简单查询案例进行讲解. 快速上手 项目中的pom.xml.application.properties与 Chapter1 相同 实体类映射数据库表 user 实体类 @Entity public class User implements Serializable { private static final long serialVersionUID = -39076354