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.pswp.cn/news/539826.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539826.shtml
英文地址,請注明出處:http://en.pswp.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.下列不是診斷老年…

家裝強電弱電布線圖_關于你不知道的弱電改造詳解 提早了解好做準備

在我們的日常生活中,沒有一處是不用電的。洗衣、做飯、看電視,這些我們生活中看起來平淡無奇的小事,離開電卻難以為繼。今天,裝一網為大家介紹弱電改造,很多業主不知道弱電改造是什么意思,也不知道弱電改造…