in modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteQueryGenerator.java [212:285]
private static void handleQueryPart(StringBuilder sql, Part part, Class<?> domainType) {
sql.append("(");
sql.append(getColumnName(part, domainType));
switch (part.getType()) {
case SIMPLE_PROPERTY:
sql.append("=?");
break;
case NEGATING_SIMPLE_PROPERTY:
sql.append("<>?");
break;
case GREATER_THAN:
sql.append(">?");
break;
case GREATER_THAN_EQUAL:
sql.append(">=?");
break;
case LESS_THAN:
sql.append("<?");
break;
case LESS_THAN_EQUAL:
sql.append("<=?");
break;
case IS_NOT_NULL:
sql.append(" IS NOT NULL");
break;
case IS_NULL:
sql.append(" IS NULL");
break;
case BETWEEN:
sql.append(" BETWEEN ? AND ?");
break;
case FALSE:
sql.append(" = FALSE");
break;
case TRUE:
sql.append(" = TRUE");
break;
//TODO: review this legacy code, LIKE should be -> LIKE ?
case LIKE:
case CONTAINING:
sql.append(" LIKE '%' || ? || '%'");
break;
case NOT_CONTAINING:
//TODO: review this legacy code, NOT_LIKE should be -> NOT LIKE ?
case NOT_LIKE:
sql.append(" NOT LIKE '%' || ? || '%'");
break;
case STARTING_WITH:
sql.append(" LIKE ? || '%'");
break;
case ENDING_WITH:
sql.append(" LIKE '%' || ?");
break;
case IN:
sql.append(" IN ?");
break;
case NOT_IN:
sql.append(" NOT IN ?");
break;
case REGEX:
sql.append(" REGEXP ?");
break;
case NEAR:
case AFTER:
case BEFORE:
case EXISTS:
default:
throw new UnsupportedOperationException(part.getType() + " is not supported!");
}
sql.append(")");
}