JPA EntityManager查找区分大小写的密钥

时间:2009-01-28 17:40:17

标签: mysql jpa find case-sensitive entitymanager

我正在尝试使用JPA EntityManager find()方法。我的主键是一个与用户名相对应的字符串。

我正在使用JPA / Hibernate / MYSQL。

我的问题是搜索用户'David'匹配用户'david',我认为,由于底层MYSQL中不区分大小写的字符串匹配。这引起了我一大堆问题!!

有人有一个优雅的解决方案吗?我可以执行本机SQL调用并使用BINARY运算符,如下所示: http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

有人有更好的解决方案吗? TA

2 个答案:

答案 0 :(得分:3)

您可以更改列类型,使其不区分大小写吗? MySQL guide有关于如何操作的信息。

这或多或少是您在BINARY运算符中找到的,但它适用于列类型而不是运行 SELECT

答案 1 :(得分:3)

Had a similar Problem。您必须将表或整个数据库的排序规则设置为区分大小写的排序规则。

请参阅: Reference Manual 12.1.10 CREATE DATABASE SYNTAX9.1.3.2. Database Character Set and Collation