jpql select query with where子句不区分非英文字符

时间:2012-01-04 11:08:43

标签: mysql hibernate jpa-2.0 jpql

我正在使用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.我正在使用带有utf8排序规则的mysql,我可以成功插入带有jpa的土耳其字符。但是这个查询不区分非英文字符和小写字母。请帮忙

1 个答案:

答案 0 :(得分:2)

MySQL有关于区分大小写的规则。字符串之间的比较不区分大小写,默认情况下使用排序规则。为了使其不区分大小写,查询或列本身必须使用二进制排序规则。

有关其他信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html