Example usage for org.hibernate.dialect Dialect getLowercaseFunction

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

Introduction

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

Prototype

public String getLowercaseFunction() 

Source Link

Document

The name of the SQL function that transforms a string to lowercase

Usage

From source file:de.cosmocode.hibernate.ReverseIlikeExpression.java

License:Apache License

@Override
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
    final SessionFactoryImplementor factory = criteriaQuery.getFactory();
    final Dialect dialect = factory.getDialect();
    final String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);

    if (columns.length != 1)
        throw new HibernateException("ilike may only be used with single-column properties");

    final String columnName = columns[0];
    final String s = matchMode.toMatchString(factory, columnName);

    if (dialect instanceof PostgreSQLDialect) {
        return "? ilike " + s;
    } else {//from   w ww .  j a  v a  2s  . c o m
        return "? like " + dialect.getLowercaseFunction() + "(" + s + ")";
    }

}

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");
    }/*from   w  ww .  j a  v a  2s .co  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;
    }
}

From source file:org.geolatte.common.cql.hibernate.EscapingLikeExpression.java

License:Open Source License

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

    String lhsAndOperator;
    if (ignoreCase) { // case insensitive: use 'ilike ?' for postgres or 'lowercaseFunction(value) like ?' for others
        if (dialect instanceof PostgreSQLDialect) {
            lhsAndOperator = columns[0] + " ilike ?";
        } else {
            lhsAndOperator = dialect.getLowercaseFunction() + '(' + columns[0] + ')' + " like ?";
        }
    } else { // case sensitive: use ordinary like
        lhsAndOperator = columns[0] + " like ?";
    }

    return lhsAndOperator + (valueConstainsEscapes ? " escape \'" + escapeChar + "\'" : "");

}