2013-10-23 58 views
1

JPA 2.0中有設置特殊字符查詢參數的方法嗎?我的意思是,如果我這樣做:query.setParameter(field, "%" + value.toString() + "%");,它需要%作爲特殊(通配符)字符?在我看來這不是真的在這種情況下,因爲我的搜索不能用截短的單詞... 你能幫助我嗎?在設置參數中插入JPA查詢中的特殊字符

+0

請顯示您的查詢 – Cirou

回答

1

如果您正在使用

LIKE :feild 

query.setParameter(field, "%" + value.toString() + "%"); 

然後值從 '%' 的標誌仍然是免費的。您可以嘗試在查詢中使用%並從setParameter()方法發送值。

您還可以嘗試CreteriaBuilderInterface JPA。 http://www.objectdb.com/java/jpa/query/jpql/string

0

你必須逃避查詢。嘗試使用"\\%"而不是

0

您將作爲查詢參數傳入以進行查詢並返回到數據庫。所以要選擇查詢參數的轉義字符將取決於數據庫。就像在mysql中,「\」爲「'」,「\%」爲「%」,所以如果我想向mysql發送「john's 10%commission」作爲查詢參數,我會嘗試query.setParameter(field, "john\\'s 10\\% commission");在你的情況query.setParameter(field, "\\%" + value.toString() + "\\%");應該工作。但檢查數據庫的文檔以找出特殊情況下的轉義字符。