List of usage examples for org.hibernate.dialect Dialect getLowercaseFunction
public String getLowercaseFunction()
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 + "\'" : ""); }