springboot判断有没有库_Springboot 使用JPA @Query 注解 查询语句条件 有可能为空,Oracle数据库...
网上查了很多资料都是下面的方法,但是不适用于Oracle
@Query(value = "select * from xxx where if(?1 !='',x1=?1,1=1) and if(?2 !='',x2=?2,1=1)" +
"and if(?3 !='',x3=?3,1=1) ",nativeQuery = true)
List find(String X1,String X2,String X3);
————————————————
版权声明:本文为CSDN博主「小码蚁啊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36802726/article/details/81208853
----------------------------------------------
以下是Oracle中的方法,在service层对条件做判定
String equityLever;
if (StringUtils.isEmpty(params.get("equityLevel"))){
equityLever = null;
}else {
equityLever = String.valueOf(params.get("equityLevel"));
}
return commodityRepository.findAllByLever(equityLever);
@Query(value = "SELECT t.equityType FROM Commodity t where t.isDelete = 0 " +
"and t.shelfStatus = 2 " +
"and t.equityLevel like concat(concat('%',nvl(?1,null)),'%') " +
"GROUP BY t.equityType")
List findAllByLever(@Param("equityLevel") String equityLevel);
或者 加上nativeQuery = true ,写原生sql
@Query(value = "SELECT t.equity_type FROM EQUITY_COMMODITY t where t.IS_DELETE = 0 " +
"and t.SHELF_STATUS = 2 " +
"and t.EQUITY_LEVEL like concat(concat('%',nvl(?1,null)),'%') " +
"GROUP BY t.EQUITY_TYPE",nativeQuery = true)
List findAllByLever(@Param("equityLevel") String equityLevel);
如果你要分页,可能要重写count语句,我这边遇到加上pageable对象时count语句有问题的时候,看下面的sql
@Query(value = "SELECT ID,CUST_ID,LEGAL_RIGHTS_INST_NBR,STATUS_CD,REQ_TYPE,ACCEPT_SEQ_NO,PROD_INST_ID,OPEN_STATUS,IS_OPEN,LAN_ID,IS_SETTLEMENT,MQ_INFO, CREATED_AT FROM EQUITY_REQUEST_LOG " +"WHERE 1=1 " +"AND CUST_ID = nvl(?1,null) " +"AND LEGAL_RIGHTS_INST_NBR = nvl(?2,null) " +"AND STATUS_CD = nvl(?3,null) " +"ORDER BY ?#{#pageable} ",countQuery = "SELECT count (ID) FROM EQUITY_REQUEST_LOG " +"WHERE 1=1 " +"AND CUST_ID = nvl(?1,'') " +"AND LEGAL_RIGHTS_INST_NBR = nvl(?2,null) " +"AND STATUS_CD = nvl(?3,null)",nativeQuery = true)Page findAllByParams(String custId,String legalRightsInstNbr,String statusCd, Pageable pageable);
这样写的限制是你的入参必须是是字符串类型的.我试过用number和date类型.但是为null的时候查询会报错数据类型异常.暂时没找到解决方案.希望大佬们可以一起探讨一下.
个人觉得 jpa 普通用用还是可以的.但是要到复杂sql 或者 自定义反馈对象的时候用起来,不如mybatis顺手.仅仅是个人感觉哈
springboot判断有没有库_Springboot 使用JPA @Query 注解 查询语句条件 有可能为空,Oracle数据库...相关推荐
- JPA @Modifying注解 jpql语句更新以及删除
JPA @Modifying注解解释 这个注解在JPA中经常出现,是为了通知jpa,这是一个update或者delete操作,在更新或者删除操作时,此注解必须加,否则就会抛出异常,注:jpa不支持in ...
- 【SQL Server数据库】建库、建表、简单查询语句(一)
记录数据库原理实验所用到的代码. 创建数据库 创建名称为XSGL_CP的数据库. create database XSGL_CP --设置主文件的逻辑名称.文件名.初始大小.最大文件大小限制.需要增加 ...
- SpringData JPA @Query动态SQL语句
前言 这次有个需求,需要动态的sql语句去查询,但是@Query正常情况下SQL语句是写死的,在查找了很多资料后,想到了一个好的解决办法 思路 利用MYSQL的判断来拼接SQL语句 实现 先上代码 @ ...
- Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句
查询语句: 1. 在@Query 注解里设置value ,?1.?2 分别代表第一第二个参数, nativeQuery=true 表示是否是原生SQL @Query(value = "se ...
- SpringBoot使用SpringDataJPA通过@Query注解多对多分页查询
文章目录 SpringBoot使用JPA@Query注解查询 1. 环境配置 2. 数据库表配置 3. 实体类配置 4. Dao代码 5. Service 代码 6. Controller 代码 7. ...
- springboot jpa自定义SQL查询
说明 在使用JPA实现数据持久化过程中经常会遇到这种情况:我有2张表是一对多的关系,需要通过一个外键ID去关联查询到另外一张表的字段.例如,1张商品表food_info其中存有商品分类ID categ ...
- 【SpringBoot框架篇】11.Spring Data Jpa实战
文章目录 1.简介 1.1.JPA 1.2.Spring Data Jpa 1.3.Hibernate 1.4.Jpa.Spring Data Jpa.Hibernate三者之间的关系 2.引入依赖 ...
- 判断vc2005运行库是否以已安装
网上找不到相关的代码,只有自己写了. //=============================================================== //功能: // 判断vc20 ...
- jpa jql 时间范围查询_SpringBoot整合JPA案例
本节主要学习SpringBoot + JPA(底层使用Hibernate实现)集成案例. 1.JPA概述 1.1 JPA简介 JPA是Java Persistence API的简称,中文名Java持久 ...
最新文章
- P1155 双栈排序(二分图的染色判断+链式前向星)
- 基类与派生类之间的转换关系
- linux删除多余日志,linux 删除日志
- html军事学校模板,军事训练学校网站模板
- ubuntu mysql 内存满了_Ubuntu 下 mysql 卸载后重安装时遇到的问题
- 【Tools】OBS Studio录制视频教程
- Android Studio生成APP方法及其所在位置
- web前端设计与开发期末作品:旅游网站设计——响应式的出国旅游定制(17页) HTML+CSS+JavaScript 旅游网页html 旅游景点html...
- 2021-09-29破解小米“铁蛋”,只需9999元,你也可以做一个四足机器人!
- Cleartext vs. Plaintext vs. Ciphertext vs. Plaintext vs. Clear Text
- 微信小程序中判断用户是否已关注公众号的两种实现
- 怎么用计算机要微信,电脑端要实现“微信双开”功能,三种方法,简单实用!...
- STP生成树协议切割网络环路
- JAVA合并pdf,拆分pdf文档
- 计算机显示器不亮灯,电脑液晶显示器指示灯不亮是为什么?
- 南阳师范学院计算机科学与技术在哪个校区,2021年南阳师范学院有几个校区,大一新生在哪个校区...
- linux(shell)查看文件时间戳
- harmonyos和emui 11概念股,从 EMUI11 到 HarmonyOS,华为 UX 设计的思考与传承
- 对Windows10虚拟桌面的简单研究
- 跟熊浩学沟通30讲读后感_20191026听书笔记《跟熊浩学沟通》
热门文章
- python解放二次开发_[转载]Python二次开发程序详解
- linux进程cpu时间片,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
- python函数参数传递机制_Python 学习笔记(一) 理解Python的函数传参机制
- 计算机个性化定制服务课题,服务网络的构建与面向增量式需求的动态定制方法-计算机科学与技术专业论文.docx...
- logstash-input-redis源码解析
- 2-docker 安装
- U-Net++粗略解释
- 传百度无人车计划分拆,百度回复:不实信息,目前未有分拆计划
- Iptables详解+实例
- Python自动化运维之常用模块—logging