springDataJpa @Query注解多条件动态模糊分页查询,传入形参对象
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注解多条件动态模糊分页查询,传入形参对象相关推荐
- SpringDataJpa使用原生sql(EntityManager)动态拼接,分页查询
SpringDataJpa Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库.该模块处理对基于JPA的数据访问层的增强支持.它使构建使用数据访问技 ...
- 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法
[Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...
- Springboot模糊分页查询思路
最近做项目用到了模糊分页查询,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用 我们几乎做的每一个项目都会用到分页查询,多条件动态查询或者这两者结合即多条件动态分页查询 ...
- 使用servlet来实现对数据库的模糊分页查询
首先要注意一个问题,通过servlet来获取到你jsp页面输入要要查询的关键字,将这些关键字赋值给一对象,通过对象从数据库查出数据之后,当你查询出来的对象用好多页显示,当你点击下一页的时候就会发现会返 ...
- SpringBoot+Mybatis+Elasticsearch 实现模糊分页查询并标记关键字
SpringBoot 整合 Elasticsearch 实现模糊分页查询并标记关键字 一.概述 & 介绍 Elasticsearch 是基于 Lucense 技术的搜索引擎(服务器),将数据进 ...
- 分页查询(PageRequest对象)相关函数
相关函数如下: 在执行查询方法时,可以传入一个PageRequest对象,代表进行分页查询.PageRequest对象代表了查询的条件和约束,通常包含当前页数,每页几条数据.也可以在分页查询时指定Di ...
- jpa分页查询(PageRequest对象)相关函数
相关函数如下: 在执行查询方法时,可以传入一个PageRequest对象,代表进行分页查询.PageRequest对象代表了查询的条件和约束,通常包含当前页数,每页几条数据.也可以在分页查询时指定Di ...
- 多条件模糊分页查询(angular+primeng+springboot)
在实现了分页查询后,我原本的项目之前的模糊查询失效,之前是传一个封装好的实体对象给后端,后端通过这个对象查询后返回结果给到前端.由于实现了分页,所以查询得到的结果也需要分页. 有个很关键的问题是分页需 ...
- @query 注解的定义_SpringDataJpa(5)---定义查询方法
定义查询方法的配置方法 由于Spring JPA Repository的实现原理是采用动态代理的机制,所以我们介绍两种定义查询方法:从方法名称中可以指定特定用于存储的查询和更新,或通过使用@Query ...
最新文章
- 说说CSRF的***
- android 模拟飞行,安卓版模拟飞行 X Plane 9试玩
- python元组支持双向索引吗_2、Python列表和元组
- java8 lambda python_java8里面lambda的stream()用法讲解
- 万能无线键盘对码软件_Ceke M87蓝牙机械键盘拆解评测 - Mac小伴侣
- JS实现生成一个周对应日期数组
- SpringBoot:与JOOQ合作
- 【转】PF_INET 和 AF_INET 的区别
- 【HDU - 5889】Barricade(最短路+网络流,最小割)
- Redis桌面客户端 Redis Studio
- VAE背后的哲学思想及数学原理
- 基于51单片机的多功能温度监测系统(附代码)
- VXLAN技术学习笔记
- 第一章 汇编语言和汇编指令
- 2022内蒙古最新建筑施工电工(建筑特种作业)模拟考试试题及答案
- MPB:南农韦中组-​根际细菌群落资源利用网络的研究方法
- 基于MATLAB的烟雾火灾检测识别系统
- python绘制拟合回归散点图_matplotlib中散点图的回归线和拟合曲线
- 如何linux删除文件夹,linux删除文件夹,教您电脑的linux怎么样删除文件夹
- 超声波测距为什么除以58