@SuppressWarnings("incomplete-switch") private Condition lowerIfIgnoreCase(Part part, Field<Object> field, Iterator<Object> iterator) { switch (part.shouldIgnoreCase()) { case ALWAYS: case WHEN_POSSIBLE: return field.likeIgnoreCase(iterator.next().toString()); default: break; } return field.like(iterator.next().toString()); }
private Condition getTextCondition(Object value, BiPredicate<?, ?> biPredicate, Field<Object> field) { String predicateString = biPredicate.toString(); switch (predicateString) { case ("LIKE"): return field.like(value.toString().replace("*", "%")); case ("UNLIKE"): return field.notLike(value.toString().replace("*", "%")); case ("REGEXP"): return field.likeRegex(value.toString()); case ("UNREGEXP"): return field.notLikeRegex(value.toString()); case ("PREFIX"): return field.like(value.toString() + "%"); case ("UNPREFIX"): return field.notLike(value.toString() + "%"); default: throw new IllegalArgumentException("predicate not supported in has step: " + biPredicate.toString()); } } }
private final Condition condition(Configuration configuration) { // [#1107] Some dialects support "contains" operations for ARRAYs // [#5929] Check both sides of the operation for array types if (lhs.getDataType().isArray() || (rhs != null && rhs.getDataType().isArray()) || (rhs == null && value != null && value.getClass().isArray())) return new PostgresArrayContains(); // "contains" operations on Strings else return lhs.like((rhs == null) ? DSL.concat(inline("%"), Tools.escapeForLike(value, configuration), inline("%")) : DSL.concat(inline("%"), Tools.escapeForLike(rhs, configuration), inline("%")), Tools.ESCAPE); }
@SuppressWarnings("incomplete-switch") private Condition lowerIfIgnoreCase(Part part, Field<Object> field, Iterator<Object> iterator) { switch (part.shouldIgnoreCase()) { case ALWAYS: case WHEN_POSSIBLE: return field.likeIgnoreCase(iterator.next().toString()); } return field.like(iterator.next().toString()); }
return context.select(FT_WORDS_NAME_FIELD) .from(FT_WORDS_TABLE) .where(FT_WORDS_NAME_FIELD.like(value .replace("%", "\\%") .replace("_", "\\_")
private final Condition condition(Configuration configuration) { // [#1107] Some dialects support "contains" operations for ARRAYs if (lhs.getDataType().isArray()) { return new PostgresArrayContains(); } // "contains" operations on Strings else { Field<String> concat; if (rhs == null) { concat = DSL.concat(inline("%"), Utils.escapeForLike(value, configuration), inline("%")); } else { concat = DSL.concat(inline("%"), Utils.escapeForLike(rhs, configuration), inline("%")); } return lhs.like(concat, Utils.ESCAPE); } }