11

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

我正在使用 JPA / Hibernate / MYSQL。

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

有没有人对此有一个优雅的解决方案?我可以进行本机 SQL 调用并使用此处记录的 BINARY 运算符:http: //dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

有人有更好的解决方案吗?塔。

4

2 回答 2

3

您可以更改列类型以使其不区分大小写吗?MySQL 指南提供了有关如何执行此操作的信息。

这或多或少是您使用 BINARY 运算符发现的,但它适用于列类型,而不是在您运行SELECT时

于 2009-01-28T17:54:13.947 回答
3

有一个类似的问题。您必须将表或整个数据库的排序规则设置为区分大小写的排序规则。

请参阅: 参考手册 12.1.10 CREATE DATABASE SYNTAX9.1.3.2。数据库字符集和排序规则

于 2011-10-04T07:58:29.310 回答