SimpleExpressionpublic class SimpleExpression extends Object implements Criterionsuperclass for "simple" comparisons (with SQL binary operators) |
Fields Summary |
---|
private final String | propertyName | private final Object | value | private boolean | ignoreCase | private final String | op |
Constructors Summary |
---|
protected SimpleExpression(String propertyName, Object value, String op)
this.propertyName = propertyName;
this.value = value;
this.op = op;
| protected SimpleExpression(String propertyName, Object value, String op, boolean ignoreCase)
this.propertyName = propertyName;
this.value = value;
this.ignoreCase = ignoreCase;
this.op = op;
|
Methods Summary |
---|
protected final java.lang.String | getOp()
return op;
| public org.hibernate.engine.TypedValue[] | getTypedValues(org.hibernate.Criteria criteria, CriteriaQuery criteriaQuery)
Object icvalue = ignoreCase ? value.toString().toLowerCase() : value;
return new TypedValue[] { criteriaQuery.getTypedValue(criteria, propertyName, icvalue) };
| public org.hibernate.criterion.SimpleExpression | ignoreCase()
ignoreCase = true;
return this;
| public java.lang.String | toSqlString(org.hibernate.Criteria criteria, CriteriaQuery criteriaQuery)
String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName);
StringBuffer fragment = new StringBuffer();
if (columns.length>1) fragment.append('(");
SessionFactoryImplementor factory = criteriaQuery.getFactory();
int[] sqlTypes = type.sqlTypes( factory );
for ( int i=0; i<columns.length; i++ ) {
boolean lower = ignoreCase &&
( sqlTypes[i]==Types.VARCHAR || sqlTypes[i]==Types.CHAR );
if (lower) {
fragment.append( factory.getDialect().getLowercaseFunction() )
.append('(");
}
fragment.append( columns[i] );
if (lower) fragment.append(')");
fragment.append( getOp() ).append("?");
if ( i<columns.length-1 ) fragment.append(" and ");
}
if (columns.length>1) fragment.append(')");
return fragment.toString();
| public java.lang.String | toString()
return propertyName + getOp() + value;
|
|