private final QueryPartInternal delegate(Configuration configuration) { if (symmetric && NO_SUPPORT_SYMMETRIC.contains(configuration.family())) return not ? (QueryPartInternal) field.notBetween(minValue, maxValue).and(field.notBetween(maxValue, minValue)) : (QueryPartInternal) field.between(minValue, maxValue).or(field.between(maxValue, minValue)); else return new Native(); }
: ((RowN) left).notBetween((RowN) r1, (RowN) r2) : left instanceof Field ? ((Field) left).between((Field) r1, (Field) r2) : ((RowN) left).between((RowN) r1, (RowN) r2);
private final QueryPartInternal delegate(Configuration configuration) { if (symmetric && asList(CUBRID, DERBY, FIREBIRD, H2, MARIADB, MYSQL, SQLITE).contains(configuration.dialect().family())) { if (not) { return (QueryPartInternal) field.notBetween(minValue, maxValue).and(field.notBetween(maxValue, minValue)); } else { return (QueryPartInternal) field.between(minValue, maxValue).or(field.between(maxValue, minValue)); } } else { return new Native(); } }
private Condition getCompareCondition(Object value, BiPredicate<?, ?> biPredicate, Field<Object> field) { String predicateString = biPredicate.toString(); switch (predicateString) { case ("eq"): return field.eq(value); case ("neq"): return field.notEqual(value); case ("gt"): return field.greaterThan(value); case ("gte"): return field.greaterOrEqual(value); case ("lt"): return field.lessThan(value); case ("lte"): return field.lessOrEqual(value); case ("inside"): List items = (List) value; Object firstItem = items.get(0); Object secondItem = items.get(1); return field.between(firstItem, secondItem); default: throw new IllegalArgumentException("predicate not supported in has step: " + biPredicate.toString()); } }
Object firstItem = convertToSqlDate(items.get(0).toString()); Object secondItem = convertToSqlDate(items.get(1).toString()); return field.between(firstItem, secondItem); case ("within"): List v = (List) value;
protected Condition toCondition(Part part, Iterator<Object> iterator) { String property = part.getProperty().toDotPath(); Field<Object> field = field(property); switch (part.getType()) { case AFTER: case GREATER_THAN: return field.gt(iterator.next()); case GREATER_THAN_EQUAL: return field.ge(iterator.next()); case BEFORE: case LESS_THAN: return field.lt(iterator.next()); case LESS_THAN_EQUAL: return field.le(iterator.next()); case BETWEEN: return field.between(iterator.next(), iterator.next()); case IS_NULL: return field.isNull(); case IS_NOT_NULL: return field.isNotNull(); case IN: return field.in(toList(iterator)); case NOT_IN: return field.notIn(toList(iterator)); case LIKE: return lowerIfIgnoreCase(part, field, iterator); case NOT_LIKE: return lowerIfIgnoreCase(part, field, iterator).not(); case STARTING_WITH: return field.startsWith(iterator.next()); case ENDING_WITH: return field.endsWith(iterator.next()); case CONTAINING: return field.contains(iterator.next()); case SIMPLE_PROPERTY: return field.eq(iterator.next()); case NEGATING_SIMPLE_PROPERTY: return field.ne(iterator.next()); case TRUE: return field.eq(true); case FALSE: return field.eq(false); default: throw new IllegalArgumentException("Unsupported keyword!"); } }
return field.le(iterator.next()); case BETWEEN: return field.between(iterator.next(), iterator.next()); case IS_NULL: return field.isNull();
select.addConditions(Usage.TIME_FIELD.between(inline(new Timestamp(time_from)), inline(new Timestamp(time_to)))); select.addConditions(onlySelectTheseMetrics(metrics));
select.addConditions(Usage.TIME_FIELD.between(inline(new Timestamp(time_from)), inline(new Timestamp(time_to))));
case "bt": parts2 = parts[2].split(",", 2); condition = field.between(parts2[0], parts2[1]); break; case "in":