栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jpa,querydsl 原生sql 查询分页,动态参数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jpa,querydsl 原生sql 查询分页,动态参数

1.  entityManager  createNativeQuery 查询功能

   
public DTO_PageData exeSqlClass(String mysql, Class s, Map parameter,Integer pageindex,Integer pagesize){
        DTO_PageData pageData= DTO_PageData.builder().build();
        Query querycount = entityManager.createNativeQuery(String.format("select count(1) from ( %s)",mysql));
        Query query = entityManager.createNativeQuery(mysql,s);
        if(parameter!=null&¶meter.size()>0){
            parameter.forEach((k,v)->{
                query.setParameter(k,v);
                querycount.setParameter(k,v);}
            );
        }

        //总记录数
        Integer total=  querycount.getResultList().size();
        pageData.setPageCount(total);
        int start = (pageindex - 1) * pagesize;
        query.setMaxResults(pagesize);
        query.setFirstResult(start);
        //页数
        pageData.setPageIndex(pageindex);
        //页显示数
        pageData.setPageSize(pagesize);
        //页数据内容
        pageData.setList(query.getResultList());
        return pageData;
    }

2.oracle sql直接分页

 
    public Tuple exeSqlClassPage(String mysql, Class s, Map parameter,String order, Integer pageindex, Integer pagesize){
        String countsql = String.format("select count(1) from (%s)", mysql);
        List list = exeSql(countsql);
        Integer o = (Integer) list.get(0);
        String pagesql = StringUtil.formatIfArgs("select * from  (select  temp_table.*,row_number() over ( order by %s ) n" +
                "                        from (select * from (%s)) temp_table)  where rn between %s and %s ",order, mysql, (pageindex - 1)*pagesize + 1, pageindex*pagesize);
        Query query = entityManager.createNativeQuery(pagesql,s);
        if(parameter!=null&¶meter.size()>0) {
            parameter.forEach((k, v) -> {
                        query.setParameter(k, v);
                    }
            );
        }
        List resultList = query.getResultList();
        return new Tuple(o,resultList);
    }

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005952.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号