使用休眠条件的不区分大小写相等

2022-08-31 15:46:28

我见过Limitences.ilike('property', '%value%'),但想生成SQL,比如:lower(property) = 'value'。有什么想法吗?

我用过:

Restrictions.eq("email", email).ignoreCase()

因为表达式已被弃用。SimpleExpression 将在值上调用 toLowerCase(),因此没有必要事先执行此操作。

请参见: 简单表达式源


答案 1

表达式现已弃用。使用限制代替...

crit(Restrictions.eq("firstName", firstName).ignoreCase());

答案 2

小心使用 ilike,因为它会允许某人输入“test%”和 match 之类的内容。我使用以下方法在一个应用程序中执行不区分大小写的相等操作:

...
Criteria crit=session.createCriteria(Event.class);
crit.add(Expression.eq("rsvpCode","test1").ignoreCase());
...

推荐