我尝试做一个区分大小写的等于username
与 Hibernate (3.6.9) 一起使用,但似乎限制不区分大小写。
例如:“AdMin”或“admin”都有效,但只有“admin”应该正确,否则.size()
应该返回 0。我会尽量避免使用like
。有人有不同的解决方案吗?
Code:
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 or varbinary
代替char/varchar
(http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html)。对于 SQLServer,请确保username
使用区分大小写的排序规则(请参阅sql 排序规则列表)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)