休眠的标准是不敏感的?

时间:2015-05-19 09:45:30

标签: java hibernate

我正在使用条件api来检查用户名是否存在。之后我正在检查密码。但用户名不区分大小写。我想让它区分大小写。

Criteria criteria2 = session.createCriteria(UserMaster.class);
criteria2.add(Restrictions.eq("userName", userName));
userDetails = (UserMaster)criteria2.uniqueResult();
if(userDetails != null) {
      //logic goes here
 }

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

如何比较字符串,取决于数据库的品牌和版本以及数据库的设置。某些数据库(例如Microsoft SQL Server)默认情况下以不区分大小写的方式比较字符串,而其他数据库则以区分大小写的方式比较字符串。

检查数据库的设置;查找您的特定品牌和数据库版本的文档,以了解如何更改此设置。

如果它确实是MS SQL Server,那么请查看此问题的示例:Sql Server check case sensitivity?

答案 1 :(得分:0)

我可以说一个简单的解决方案。但它不是一个直接的方式。使用MD5加密您的用户名并将其保存到数据库。比较用户名时,必须使用MD5加密给定的用户名,并将其与数据库中保存的用户名进行比较。但我不推荐这个解决方案,无论如何你也可以使用它。 :)

答案 2 :(得分:0)

我使用本机sql进行如下操作

Query query = session.createSQLQuery("select * from USER_MASTER where binary USER_NAME='"+userName+"'").addEntity(UserMaster.class);
userDetails = (UserMaster)query.uniqueResult();
if(userDetails != null) {
  //code goes here
}