Example usage for org.hibernate.dialect Dialect supportsCaseInsensitiveLike

List of usage examples for org.hibernate.dialect Dialect supportsCaseInsensitiveLike

Introduction

In this page you can find the example usage for org.hibernate.dialect Dialect supportsCaseInsensitiveLike.

Prototype

public boolean supportsCaseInsensitiveLike() 

Source Link

Document

Does this dialect support case insensitive LIKE restrictions?

Usage

From source file:org.eulerframework.web.core.extend.hibernate5.LikeExpressionX.java

License:Apache License

@Override
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) {
    final Dialect dialect = criteriaQuery.getFactory().getDialect();
    final String[] columns = criteriaQuery.findColumns(propertyName, criteria);
    if (columns.length != 1) {
        throw new HibernateException("Like may only be used with single-column properties");
    }//w ww.j  a va  2s. c o m

    final String escape = escapeChar == null ? "" : " escape \'" + escapeChar + "\'";
    final String column = columns[0];
    if (ignoreCase) {
        if (dialect.supportsCaseInsensitiveLike()) {
            return column + " " + dialect.getCaseInsensitiveLike() + " ?" + escape;
        } else {
            return dialect.getLowercaseFunction() + '(' + column + ')' + " like ?" + escape;
        }
    } else {
        return column + " like ?" + escape;
    }
}