2015-04-23 62 views
0

我想運行一個SQL查詢使用索引查詢爲, list.add(「'%」+ some_string +「%'」); 和查詢(樣品)中設置,如:SQL query.setParameter()沒有在Java中得到單引號字符串

query=select * from table where name like ?1; 

我設置參數爲:

query.setParameter(1, list.get(0)); 

它不工作,而不是如果我直接在查詢中放值,如:

select * from table where name like '%"+some_string+"%' 

它的工作原理。我正在使用JPA Hibernate和postgres數據庫。

是否有同時設定參數作爲

query.setParameter()單引號的任何內部的解析;

回答

2

從佔位符值中刪除''引號,將其添加到List

list.add("%" + some_string + "%"); 

現在query.setParameter(1, list.get(0));應該按預期工作,因爲任何字符串值被綁定到一個佔位符?不需要被引用。

+0

我做到了..工作正常!但只是擔心,因爲我在使用單引號參數的查詢中使用LIKE! –

+0

這與LIKE無關。如果您一直使用其他運算符(如=或IN子句),則仍需要未加引號的字符串值作爲準備好的語句的參數。 –

+0

@AkashShinde請考慮[接受](http://stackoverflow.com/help/accepted-answer)答案,如果這有幫助。 –

相關問題