• SpringData JPA 关于分页@Query 的问题


    关于springdata jpa 分页问题相信很多小伙伴都遇到过,只要表中数量到达分页条件就会报错

     废话少说直接上代码:

    @Query(nativeQuery = true, value = "select a.*,c.username from fm_admin_voucher a LEFT JOIN t_userrole b on a.user_id = b.userid " +
    "LEFT JOIN t_admin c ON a.user_id = c.userid " +
    "where a.isdelete=false " +
    "AND b.roleid in (10,11) " +
    "AND if(?1!='',a.user_id=?1, 1=1) " +
    "AND if(?2!='',a.createtime>=?2,1=1) " +
    "AND if(?3!='',a.createtime<=?3,1=1) " +
    "AND if(?4!='',c.mark=?4,1=1) " +
    "AND if(?5!='',a.type in (301,302,303),1=1) " +
    "AND if(?6!='',b.roleId=?6,1=1) " ,
    countQuery = "select count(a.id) from fm_admin_voucher a LEFT JOIN t_userrole b on a.user_id = b.userid " +
    "LEFT JOIN t_admin c ON a.user_id = c.userid " +
    "where a.isdelete=false " +
    "AND b.roleid in (10,11) " +
    "AND if(?1!='',a.user_id=?1, 1=1) " +
    "AND if(?2!='',a.createtime>=?2,1=1) " +
    "AND if(?3!='',a.createtime<=?3,1=1) " +
    "AND if(?4!='',c.mark=?4,1=1) " +
    "AND if(?5!='',a.type in (301,302,303),1=1) " +
    "AND if(?6!='',b.roleId=?6,1=1) ")
    Page<Map> executiveList(Long adminId, Date startTime, Date endTime, String mark, String type, Long roleId, Pageable pageable);

    其中

    1.@Query 这个是jpa自定定义sql语句时用到的注解

    2.nativeQuery代表value中的语句为 sql语句,而非hql语句

    3. countQuery代表当前分页的总页数,如果不设置这个参数相信你的分页一定不顺利。

    4.该语句中还有一些条件判断等,要学习的小伙伴自行研究

  • 相关阅读:
    十五组TD信息通的使用体验报告
    如何让Div中的Table居中
    SQL SERVER临时表的使用
    如何将px换成em,px与em区别是什么?
    再说委托
    onclick与onCommand的区别
    亚马逊购物的用户体验分析
    jQuery 1.4 版本的十五个新特性
    如何选择SEO公司才能避免上当
    jQuery对象与dom对象
  • 原文地址:https://www.cnblogs.com/shisanye/p/13821413.html
Copyright © 2020-2023  润新知