spring data jpa分页

本文介绍了一个基于Spring MVC框架的在线消息分页查询功能实现。通过controller层处理HTTP请求,利用service层进行业务逻辑处理,并借助持久层接口完成数据库操作。具体包括:通过@RequestMapping注解映射URL路径,@ResponseBody将返回结果转换为JSON格式,使用Session获取当前登录用户,调用service层方法实现分页查询等。

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>{.....}

 

  

转载于:https://www.cnblogs.com/cora/p/4323025.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值