2017-08-09 63 views
0

我有以下Hibernate查詢如何使hibernate查詢區分大小寫?

@NamedQuery(name = "findByName", query = "SELECT e FROM t=Table e WHERE e.name =:name") 

這裏是我如何設置參數

uniqueResult(namedQuery("findByName").setString("name",name)); 

這將分化 「名稱」,從 「NAME」?我讀setParameter()區分大小寫,我應該將setString()更改爲setParameter()

+0

根據我的記憶默認查詢是區分大小寫的。你真的試過先運行這個嗎? – aorticDefiance

+0

yeah setString無法識別差異, –

+0

您是否指':name',即參數名稱?不是參數的實際值? – aorticDefiance

回答

0

這非常依賴於您的數據庫和使用的排序規則。某些數據庫的排序規則爲:CI不區分大小寫,CS區分大小寫。例如在MySQL latin1_general_cilatin1_general_cs上。

Hibernate沒有意識到這個事實,只是執行一個標準的WHERE子句產生數據庫配置的行爲。

https://dev.mysql.com/doc/refman/5.7/en/charset-mysql.html

https://msdn.microsoft.com/de-de/library/ms144250(v=sql.105).aspx

+0

遇到此選項,在其他SO職位..但我仍然不知道如何在JPA命名查詢中解決這個問題 –