在這里,我試圖將字串引數值傳遞給本地查詢,該查詢在JPA存盤庫中有類似的命令
。@Query(value = "select u.* from users where u.name like '%?1%'", nativeQuery = true)
List<User> findAllByNameContaining(String searchString)。
當我試圖用show sql標志進行除錯時。我在控制臺中看到以下結果
Hibernate。
/* dynamic native SQL query */ select
u.*
from
用戶 u
join join
客戶c
on u.id = c.userId
where
c.trainerId = ?
and u.name like '%?2%'?
我斷定它添加了額外的單引號(即),像'%'searchvalue'%'
注意:查詢比這里提到的要復雜。所以,我不想要像findAllByNameContaining或findByNameIgnoreCaseContaining等解決方案。
uj5u.com熱心網友回復:
不要使用nativeQuery = true與jpql
使用Like關鍵字 :
List<User> findByNameLike(String searchString)。
你也可以試試這個
uj5u.com熱心網友回復:
當你在查詢中放入'%?2%'時,并沒有擴展為一個引數,兩邊都被%連接起來。你不能把引數放在一個字串字面內。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309818.html
標籤:
上一篇:安卓SQL游標
