java - 为什么在类似搜索期间将 lower 添加到 hibernate 查询中

标签 java hibernate

我正在尝试使用 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/

相关文章:

java - 如何实现抽象子类继承的方法?

java - 使用 WebDriver driver = new FirefoxDriver() 和 FirefoxDriver driver = new FirefoxDriver() 创建驱动程序对象之间的区别?

java - 如何让 Hibernate 拦截器获取某些父类(super class)字段?

hibernate - PostgreSQL 和 Hibernate : How do I format timestamp output?

java - 为什么我会收到 org.hibernate.id.IdentifierGenerationException?

java - 在maven中从开发发布到生产

java - 如何在 Java 中将二进制字符串转换为以 10 为底的整数

java - Spring SpEL 不适用于 <mvc :resources> location parameter

hibernate - JPA/JPQL : AS identifier disallowed in SELECT clause

java - Hibernate 级联与单独调用