gpt4 book ai didi

java - Hibernate限制中限制 'equals id'区分大小写

转载 作者:行者123 更新时间:2023-11-29 05:38:04 24 4
gpt4 key购买 nike

我尝试使用 Hibernate (3.6.9) 在 username 上做一个区分大小写的 equals,但似乎限制是不区分大小写的。
例如:“AdMin”或“admin”都是有效的,但只有“admin”应该是正确的,否则 .size() 应该返回 0。我会尽量避免使用 like。有人有不同的解决方案吗?

代码:

Session sess = getSessionFactory().getCurrentSession();

@SuppressWarnings("unchecked")
List<Login> logins = sess.createCriteria(Login.class).add(Restrictions.idEq(username)).list();
if(logins.size() == 1) {
return logins.get(0);
} else {
return null;
}

在这种情况下,Microsoft SQL Server 和 MySQL 没有区别。

最佳答案

我认为您需要更改表定义。对于 Mysqsl,您需要将 username 列更改为 binary 或 varbinary 而不是 char/varchar ( http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html )。对于 SQLServer,确保 username 使用区分大小写的排序规则(参见 list of sql collations )

关于java - Hibernate限制中限制 'equals id'区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com