1.代码:

    @Query(value = "SELECT * FROM s_order_baseinfo WHERE 1=1 " +"AND IF(''!=:#{#orderBaseInfo.siteId}, site_id=:#{#orderBaseInfo.siteId},1=1) " +"AND IF(''!=:#{#orderBaseInfo.userId}, user_id=:#{#orderBaseInfo.userId},1=1) " +"AND IF(''!=:#{#orderBaseInfo.orderNumber}, order_no like %:#{#orderBaseInfo.orderNumber},1=1) " +"AND IF(''!=:#{#orderBaseInfo.visitorCardNumber}, user_credentials_num=:#{#orderBaseInfo.visitorCardNumber},1=1) " +"AND IF(''!=:#{#orderBaseInfo.visitorPhone}, user_phone=:#{#orderBaseInfo.visitorPhone},1=1) " +"AND IF(''!=:#{#orderBaseInfo.orderState}, order_state=:#{#orderBaseInfo.orderState},1=1) " +"AND IF(''!=:#{#orderBaseInfo.queryConditionStartTime}, order_time>=:#{#orderBaseInfo.queryConditionStartTime},1=1) " +"AND IF(''!=:#{#orderBaseInfo.queryConditionEndTime}, order_time<=:#{#orderBaseInfo.queryConditionEndTime},1=1) " +"ORDER BY order_time DESC",countQuery = "SELECT current(*) FROM s_order_baseinfo WHERE 1=1 " +"AND IF(''!=:#{#orderBaseInfo.siteId}, site_id=:#{#orderBaseInfo.siteId},1=1) " +"AND IF(''!=:#{#orderBaseInfo.userId}, user_id=:#{#orderBaseInfo.userId},1=1) " +"AND IF(''!=:#{#orderBaseInfo.orderNumber}, order_no like %:#{#orderBaseInfo.orderNumber},1=1) " +"AND IF(''!=:#{#orderBaseInfo.visitorCardNumber}, user_credentials_num=:#{#orderBaseInfo.visitorCardNumber},1=1) " +"AND IF(''!=:#{#orderBaseInfo.visitorPhone}, user_phone=:#{#orderBaseInfo.visitorPhone},1=1) " +"AND IF(''!=:#{#orderBaseInfo.orderState}, order_state=:#{#orderBaseInfo.orderState},1=1) " +"AND IF(''!=:#{#orderBaseInfo.queryConditionStartTime}, order_time>=:#{#orderBaseInfo.queryConditionStartTime},1=1) " +"AND IF(''!=:#{#orderBaseInfo.queryConditionEndTime}, order_time<=:#{#orderBaseInfo.queryConditionEndTime},1=1) " +"ORDER BY order_time DESC",nativeQuery = true)Page<OrderBaseInfo> getOrderBaseInfoPage(@Param("orderBaseInfo") OrderBaseInfo orderBaseInfo, Pageable pageable);

1.有几个疑问,有知道的大佬麻烦帮小弟解惑!

1). 听说用@Query注解的原生sql,会被二次转换成orm的实体类语法,不知道是不是这样.
2).#{#bean.xxx}
这里的为啥两个#
3). 语法中的冒号[’:’]和?一样的作用吗?包装类单属性形参的赋值方式为: select * from xxx where id=?1
是否可以这样赋值对象的属性呢? select * from xxx where id=?#{#对象.属性}
4).@Query的countQuery=的分页语句有没有简化的写法?两大坨,太臃肿了.
5.)官方api看着脑壳痛,有没有@Query的比较易读的详解文章推荐下啊.

springDataJpa @Query注解多条件动态模糊分页查询,传入形参对象相关推荐

  1. SpringDataJpa使用原生sql(EntityManager)动态拼接,分页查询

    SpringDataJpa Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库.该模块处理对基于JPA的数据访问层的增强支持.它使构建使用数据访问技 ...

  2. 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法

    [Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...

  3. Springboot模糊分页查询思路

    最近做项目用到了模糊分页查询,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用 我们几乎做的每一个项目都会用到分页查询,多条件动态查询或者这两者结合即多条件动态分页查询 ...

  4. 使用servlet来实现对数据库的模糊分页查询

    首先要注意一个问题,通过servlet来获取到你jsp页面输入要要查询的关键字,将这些关键字赋值给一对象,通过对象从数据库查出数据之后,当你查询出来的对象用好多页显示,当你点击下一页的时候就会发现会返 ...

  5. SpringBoot+Mybatis+Elasticsearch 实现模糊分页查询并标记关键字

    SpringBoot 整合 Elasticsearch 实现模糊分页查询并标记关键字 一.概述 & 介绍 Elasticsearch 是基于 Lucense 技术的搜索引擎(服务器),将数据进 ...

  6. 分页查询(PageRequest对象)相关函数

    相关函数如下: 在执行查询方法时,可以传入一个PageRequest对象,代表进行分页查询.PageRequest对象代表了查询的条件和约束,通常包含当前页数,每页几条数据.也可以在分页查询时指定Di ...

  7. jpa分页查询(PageRequest对象)相关函数

    相关函数如下: 在执行查询方法时,可以传入一个PageRequest对象,代表进行分页查询.PageRequest对象代表了查询的条件和约束,通常包含当前页数,每页几条数据.也可以在分页查询时指定Di ...

  8. 多条件模糊分页查询(angular+primeng+springboot)

    在实现了分页查询后,我原本的项目之前的模糊查询失效,之前是传一个封装好的实体对象给后端,后端通过这个对象查询后返回结果给到前端.由于实现了分页,所以查询得到的结果也需要分页. 有个很关键的问题是分页需 ...

  9. @query 注解的定义_SpringDataJpa(5)---定义查询方法

    定义查询方法的配置方法 由于Spring JPA Repository的实现原理是采用动态代理的机制,所以我们介绍两种定义查询方法:从方法名称中可以指定特定用于存储的查询和更新,或通过使用@Query ...

最新文章

  1. 说说CSRF的***
  2. android 模拟飞行,安卓版模拟飞行 X Plane 9试玩
  3. python元组支持双向索引吗_2、Python列表和元组
  4. java8 lambda python_java8里面lambda的stream()用法讲解
  5. 万能无线键盘对码软件_Ceke M87蓝牙机械键盘拆解评测 - Mac小伴侣
  6. JS实现生成一个周对应日期数组
  7. SpringBoot:与JOOQ合作
  8. 【转】PF_INET 和 AF_INET 的区别
  9. 【HDU - 5889】Barricade(最短路+网络流,最小割)
  10. Redis桌面客户端 Redis Studio
  11. VAE背后的哲学思想及数学原理
  12. 基于51单片机的多功能温度监测系统(附代码)
  13. VXLAN技术学习笔记
  14. 第一章 汇编语言和汇编指令
  15. 2022内蒙古最新建筑施工电工(建筑特种作业)模拟考试试题及答案
  16. MPB:南农韦中组-​根际细菌群落资源利用网络的研究方法
  17. 基于MATLAB的烟雾火灾检测识别系统
  18. python绘制拟合回归散点图_matplotlib中散点图的回归线和拟合曲线
  19. 如何linux删除文件夹,linux删除文件夹,教您电脑的linux怎么样删除文件夹
  20. 超声波测距为什么除以58

热门文章

  1. SQL数据库可疑恢复 挂起恢复 置疑恢复 SQL数据库无法附加修复 附加报错 9003
  2. 【工具】Typora 自定义快捷键
  3. 插入排序:直接插入、交换插入、折半插入
  4. 那些年我们没能bypass的xss filter[from wooyun]
  5. js实现base64编码和解码
  6. 服务器查询IPV6地址
  7. 数据库设计文档化---详细文档
  8. [Linux] sed命令详解
  9. <Python的输入、输出、注释>——《Python》
  10. CSS多行文本溢出隐藏,显示省略号