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顺手.仅仅是个人感觉哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

台式计算机技术方案,2017年4月自考02316计算机应用技术真题及答案

本文提供的是2017年4月自考02316计算机应用技术真题及答案,真题不仅能帮助考生复习巩固学到的知识,还能让考生了解以往考试难易程度,真正掌握一套真题那么考试也不用担心了。要考试的你一定要多多练习啊。2017 年 4 月高等教育自学考试全国统…

Linux磁盘编号

一、IDE接口磁盘 Linux的编码规则是 /dev/hd* -------------------------------hda 第一块盘 -------------------------------------------hda1 第一分区,hda2 第二分区,hda3 第三分区..... -------------------------------hdb 第二块盘 …

Linux挂载点和文件系统类型介绍

一、挂载点 Mount Point 这是Linux下访问磁盘分区的入口,即如果要往分区里写入数据,就必须通过/boot入口来写入,这一点和windows是不同的,因为在安装Linux时,Mount Point项填写 /boot二、文件系统类型 1、ext2/3/4&…

pythonint函数的参数_向嵌入的Python函数传递两个参数(int和array)

我需要从我的模块中调用Python函数并为其设置两个参数:int和array。在现在我在调用这个函数的时候遇到了segfault,我不知道我做错了什么。有人能指出我的错误在哪里吗?在函数在我的Python模块中应用程序副本. 如果我从Python代码调用它&#…

理解lua中 . : self

文章目录[点击展开](?)[] 前言点号定义和调用冒号定义和冒号调用运行结果相互调用相互调用运行结果总结前言 在LUA中,经常可以看到:. self,今天在CSDN上看到一篇博客写的很清楚,转载过来 原文出处:http://blog.csdn.n…

适合初中文凭学的计算机技术,初中毕业学啥技术好 最吃香的手艺

很多初中毕业的初中生因为成绩不是很理想,不能上一所理想的高中,所以选择学一门技术,那么初中毕业学啥技术好呢,哪些手艺未来比较吃香呢,下面小编为大家分析一下初中毕业应该学什么手艺。初中毕业学哪些技术发展好汽修…

SecureCRT配置

一、下载 路径:http://www.pc6.com/softview/softview_24396.html 里面有破解教程 二、配置 1、选择仿真环境养眼的绿色字体黑色背景配置,选择 traditional option->Global options –>default session -> edit default settings -> 修改…

左室短轴切面_一文读懂心脏超声基本切面

一. 本文出现的英文简称二.超声心动图基本切面采用与心脏相互垂直的三个基本平面,主要观测心脏各房室腔内径、容积和室壁厚度及其相关解剖结构运动状态、功能等。检查中探头最常放置的位置包括心底部、心尖部、剑突下,锁骨/胸骨上窝等。心脏超声检查中探…

怎么用计算机弹c哩c哩,计算器音乐c哩c哩乐谱 | 手游网游页游攻略大全

发布时间:2016-06-29铲子骑士乐谱有什么用 铲子骑士乐谱卖不了怎么办.不少铲子骑士玩家收集了一些乐谱,那么这些乐谱功能是什么呢?下面99单机网小编给大家介绍铲子骑士乐谱有什么用 铲子骑士乐谱卖不了怎么办. 乐谱可以卖钱,还可以更换游戏中的音乐 ...标签&#x…

Windows 7 资源管理器搜索Channel 9 视频

在Windows 7 中Federated Search 可以通过OpenSearch 协议访问到远程数据资源,也就意味着用户可以使用资源管理器(Windows Explorer)搜索并浏览远程数据。本篇我们将制作一个搜索连接器(Search Connector)查找Channel …

python django flask介绍_django和flask哪个值得研究学习

对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架。我这里并不想探讨哪个框架好哪个不好,这个永恒的话题就跟探讨“世界上哪种编程语言最屌”是一样…

sts html视图编辑器,免费的HTML可视化编辑器HBuilder前端开发编辑器 | 老疯子

互联网上几款比较热门的编辑器Dreamweaver、Notepad、Sublime Text、Vim、Emacs等,这些或许你用过其中之一或许听说过它们。这些都是国外人员开发的有些甚至被公认为是最受专业程序员喜爱的代码编辑器(Vim和Emacs)。都是国外的,那国内的呢?当…

css层叠样式初学

一、css简介 1、层叠样式表:叠加效果,不同css对同一html修饰,冲突部分,优先级高作用,不冲突部分,共同作用 2、css作用 (1)修饰html     (2)替代了标签自身的颜色,字号等属性,提高…

sum(x) over( partition by y ORDER BY z ) 分析

参考的博文出处:http://www.cnblogs.com/luhe/p/4155612.html,对博文进行了修改新增,修改了错误的地方 之前用过row_number(),rank()等排序与over( partition by ... ORDER BY ...),这两个比较好理解: 先分组&#xff…

sqlserver 日期与字符串之间的转换

字符转换为日期时,Style的使用 --1. Style101时,表示日期字符串为:mm/dd/yyyy格式SELECT CONVERT(datetime,11/1/2003,101)--结果:2003-11-01 00:00:00.000 --2. Style101时,表示日期字符串为:dd/mm/yyyy格式SELECT CONVERT(datetime,11/1/2003,103)--结果:2003-01-11 00:00:00…

idea数据库反向生成实体类_IntelliJ IDEA 的数据库管理工具实在太方便了

1. 前言对于一个有软件洁癖的人,能用现有的软件解决问题的绝不安装新的软件。Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的。通常图形化操作关系型数据库(RMDBS)大多数人会选择Nav…

DBMS_OUTPUT.PUT_LINE没有输出

解决方法: 打开打印输出 set serveroutput on;问: 明明设了,但是还是没有打印啊! 答: 只有在调用 存储过程的时候,才会打印出来。在创建编译的时候,是不会打印出来的。 (博主今天…

Fresco 二三事:图片处理之旋转、缩放、裁剪切割图片

关于Fresco加载图片的处理,例如旋转、裁剪切割图片,在官方文档也都有提到,只是感觉写的不太详细,正好最近项目里有类似需求,所以分享一些使用小tip,后面的朋友就不用再走弯路浪费时间了。(测试图…

老年人计算机应用基础,国开电大老年心理健康作业一参考答案

题目1.脑功能衰退明显的症状是( )。A. 记忆力衰退B. 皮肤老化C. 孤独感强D. 感知觉能力的退化【答案】:记忆力衰退题目2.下列哪项不属于老年人的特点:( )。A. 肺功能下降B. 体重下降C. 视野狭窄D. 嗜睡【答案】:嗜睡题目3.下列不是诊断老年…

家装强电弱电布线图_关于你不知道的弱电改造详解 提早了解好做准备

在我们的日常生活中,没有一处是不用电的。洗衣、做饭、看电视,这些我们生活中看起来平淡无奇的小事,离开电却难以为继。今天,装一网为大家介绍弱电改造,很多业主不知道弱电改造是什么意思,也不知道弱电改造…