繁体   English   中英

Hibernate Criteria Restrictions.eq不区分大小写

[英]Hibernate Criteria Restrictions.eq is case insensitive

我正在使用标准来检查json中的用户名和密码是否正确。 我确定输入的用户名和密码使用正确的大小写,但是即使字母大小写不同,它也始终会返回对象。

public Admin getLoggedAdminInformation(String username, String password){

   Criteria criteria = criteria()
            .add(Restrictions.eq("userName", username))
            .add(Restrictions.eq("password", password));

   return (Admin) criteria.uniqueResult();
}

Restrictions.eq仅返回一个带有ignoreCase为false的SimpleExpression对象。 因此,它将使用与您提供的值完全相同的值来创建SQL。

public static SimpleExpression eq(String propertyName, Object value) {
        return new SimpleExpression(propertyName, value, "=");
    }

因此,这种不区分大小写的比较是数据库的行为。 它取决于数据库服务器或表或列的配置。

例如:在MS SQL Server中,这是基于数据库的排序规则,可以在表级别或列级别上重写。 示例排序规则名称为Latin1_General_CI_AS,此处CI =不区分大小写,AS =区分重音。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM