美文网首页
Spring data jpa 分页 ViewObject

Spring data jpa 分页 ViewObject

作者: 田文健 | 来源:发表于2019-12-12 21:08 被阅读0次

    实现Springdata jpa 分页排序参数的快速绑定及输出pageable对象。

    package com.bz.heimdallr.vo;
    
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import io.swagger.annotations.ApiModel;
    import lombok.Data;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.data.domain.PageRequest;
    import org.springframework.data.domain.Pageable;
    import org.springframework.data.domain.Sort;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    @Data
    @Slf4j
    @ApiModel
    public class PageVO {
    
        Integer page;
    
        Integer limit;
    
        List<Order> sort;
    
        public Pageable toPageable() {
            if(limit == null){
                limit = Integer.MAX_VALUE;
            }
            if (page == null){
                page = 1;
            }
    
            List<Sort.Order> orders = new ArrayList<>(4);
    
            if(sort != null){
                for (PageVO.Order order: sort){
                    orders.add(new Sort.Order(Sort.Direction.fromString(order.direction), order.column));
                }
            }
    
            return PageRequest.of(page - 1, limit, Sort.by(orders));
    
        }
    
        @Data
        public static class Order{
            private String column;
            private String direction;
        }
    }
    
    

    前端参数-》
    page: 1
    limit: 10
    sort[0].column: ctime
    sort[0].direction: DESC

    相关文章

      网友评论

          本文标题:Spring data jpa 分页 ViewObject

          本文链接:https://www.haomeiwen.com/subject/ahvugctx.html