jpql select query с предложением where не различает не английские символы - PullRequest
0 голосов
/ 04 января 2012

я использую hibernate jpa 3.6.7. У меня есть таблица, в которой хранятся названия стран, и у меня есть страна под названием "Türkiye". я написал запрос так:

Query query = em.createQuery("SELECT COUNT(c) FROM EntityCountry c WHERE c.countryName = :country").setParameter("country", "turkiye");
long result = (long)query.getSingleResult();

результат возвращает 1. Я использую mysql с сопоставлением utf8 и могу успешно вставить турецкие символы с помощью jpa. но этот запрос не различает неанглийские символы и строчные буквы. пожалуйста помогите

1 Ответ

2 голосов
/ 04 января 2012

MySQL имеет свои собственные правила, касающиеся чувствительности к регистру.Сравнения между строками не чувствительны к регистру и по умолчанию использует сопоставление.Чтобы сделать его нечувствительным к регистру, запрос или сам столбец должны использовать двоичное сопоставление.

См. http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html для дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...