我正在尝试使用 Hibernate Criteria 进行类似搜索。
Criterion nameCriteria = Restrictions.ilike("name", fileNameWOE,MatchMode.START);
criteria.add(fileNameCriteria);
List<Account> results = getHibernateTemplate().findByCriteria(criteria);
但是当生成hibernate查询时,它会向查询添加一个较低的条件。
select
this_.ID as ID3_0_,
this_.SESSION_ID as SESSION2_3_0_,
this_.NAME as NAME3_3_0_,
from
account this_
where
lower(this_.NAME) like ?
hibernate自动添加较低条件是否有任何原因以及如何避免这种情况?
最佳答案
Restrictions.ilike
- 是不区分大小写的搜索。执行不区分大小写查询的常用方法是将输入和数据库值转换为相同的大小写(使用大写或小写)。这就是为什么 lower 应用于您的谓词的原因。
关于java - 为什么在类似搜索期间将 lower 添加到 hibernate 查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31331208/