JPA EntityManager 查找区分大小写的键

发布于 2024-07-12 00:19:45 字数 440 浏览 10 评论 0原文

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

我正在使用 JPA / Hibernate / MYSQL。

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

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

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

I'm trying to use the JPA EntityManager find() method. My primary key is a string which corresponds to a user's name.

I am using JPA / Hibernate / MYSQL.

My problem is a search for user 'David' matches user 'david' due, I assume, to the case insensitive string matching in the underlying MYSQL. This causes me a whole heap of problems!!

Has anybody got an elegant solution to this? I could do a native SQL call and use the BINARY operator as documented here:
http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

Anyone got a better solution?
Ta.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷到爆炸 2024-07-19 00:19:45

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

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

Can you change the column type such that it is case insensitive? The MySQL guide has information on how to do so.

This is more or less what you found with the BINARY operator but it applies to the column type instead of when you run a SELECT

哭泣的笑容 2024-07-19 00:19:45

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

看:
参考手册 12.1.10 创建数据库语法
9.1.3.2。 数据库字符集和排序规则

Had a similar Problem. You have to set the collation of the table or of the whole database to one which is case-sensitive.

See:
Reference Manual 12.1.10 CREATE DATABASE SYNTAX and
9.1.3.2. Database Character Set and Collation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文