/** * @param pattern a pattern matching property value. Pattern may include "_" and * "%" wildcard symbols to match any single character or a * sequence of characters. To prevent "_" and "%" from being * treated as wildcards, they need to be escaped and escape char * passed with {@link #like(String, char)} method. * @return An expression for a Database "LIKE" query. */ public Expression like(String pattern) { return ExpressionFactory.likeExp(getExpression(), pattern); }
/** * @param pattern a properly escaped pattern matching property value. Pattern * may include "_" and "%" wildcard symbols to match any single * character or a sequence of characters. * @param escapeChar an escape character used in the pattern to escape "%" and "_". * @return An expression for a Database "LIKE" query. */ public Expression like(String pattern, char escapeChar) { return ExpressionFactory.likeExp(getExpression(), pattern, escapeChar); }
public void addLike(String fieldName, Object value, boolean caseSensetive) { ObjEntityViewField field = queryTarget.getField(fieldName); String path = null; if (field.getCalcType().getValue() == CalcTypeEnum.NO_CALC_TYPE_VALUE) { path = field.getObjAttribute().getName(); } else if (field.isLookup()) { path = field.getObjRelationship().getName(); } Object rawValue = field.toRawValue(value); String pattern = (rawValue != null ? rawValue.toString() : ""); Expression expr = (caseSensetive ? ExpressionFactory.likeExp(path, pattern) : ExpressionFactory.likeIgnoreCaseExp(path, pattern)); conditions.add(expr); }