@Override protected SqlPredicateFragment notEqualHelper(String cn, Object argument) { return of("(" + cn + " != ?)").add(argument); }
private SqlPredicateFragment notEqualHelper(String cn, Class<?> dbType, Object argument) { if (dbType.equals(String.class)) { // Use collation for string types return of("(NOT " + compare(cn, " = ?", binaryCollationName) + ")") .add(argument); } else { return of("(NOT (" + cn + " = ?))").add(argument); } }
@Override protected SqlPredicateFragment startsWithIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " COLLATE NOCASE LIKE (? || \"%\") ESCAPE \"_\")", negated) .add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment startsWithIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(LOWER(" + cn + ") LIKE BINARY CONCAT(LOWER(?) ,'%'))", negated) .add(getFirstOperandAsRaw(model)); // Todo: Use collation like this: // return of("(" + cn + " " + Collation.UTF8_GENERAL_CI.getCollateCommand() + " LIKE BINARY CONCAT(? ,'%'))", negated).add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment endsWithIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(LOWER(" + cn + ") LIKE BINARY CONCAT('%', LOWER(?)))", negated) .add(getFirstOperandAsRaw(model)); // Todo: Use collation like this: // return of("(" + cn + " " + Collation.UTF8_GENERAL_CI.getCollateCommand() +" LIKE CONCAT('%', ?))", negated).add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment startsWithHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " LIKE BINARY CONCAT(? ,'%'))", negated) .add(getFirstOperandAsRaw(model)); // Todo: Use collation like this: // return of("(" + cn + " " + Collation.UTF8_BIN.getCollateCommand() + " LIKE CONCAT(? ,'%'))", negated).add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment endsWithHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " LIKE BINARY CONCAT('%', ?))", negated) .add(getFirstOperandAsRaw(model)); // Todo: Use collation like this: // return of("(" + cn + " " + Collation.UTF8_BIN.getCollateCommand() + " LIKE CONCAT('%', ?))", negated).add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment endsWithHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " GLOB (\"*\" || ?))", negated) .add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment endsWithIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " COLLATE NOCASE LIKE (\"%\" || ?) ESCAPE \"_\")", negated) .add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment containsHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " LIKE BINARY CONCAT('%', ? ,'%'))", negated) .add(getFirstOperandAsRaw(model)); // Todo: Use collation like this: // return of("(" + cn + " " + Collation.UTF8_BIN.getCollateCommand() +" LIKE CONCAT('%', ? ,'%'))", negated).add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment equalIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " COLLATE NOCASE " + (negated ? "!= ?)" : "= ?)")) .add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment startsWithHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " GLOB (? || \"*\"))", negated) .add(getFirstOperandAsRaw(model)); }
@Override protected SqlPredicateFragment containsIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of("(" + cn + " COLLATE NOCASE LIKE (\"%\" || ? || \"%\") ESCAPE \"_\")", negated) .add(getFirstOperandAsRaw(model)); } }
@Override protected SqlPredicateFragment greaterOrEqual(String cn, Class<?> dbType, FieldPredicate<?> model) { if (dbType.equals(String.class)) { // Use collation for string types return of(greaterOrEqualString(cn)) .add(getFirstOperandAsRaw(model)); } else { return super.greaterOrEqual(cn, dbType, model); } }
@Override protected SqlPredicateFragment lessOrEqual(String cn, Class<?> dbType, FieldPredicate<?> model) { if (dbType.equals(String.class)) { // Use collation for string types return of(lessOrEqualString(cn)) .add(getFirstOperandAsRaw(model)); } else { return super.lessOrEqual(cn, dbType, model); } }
@Override protected SqlPredicateFragment lessOrEqual( final String cn, final Class<?> dbType, final FieldPredicate<?> model ) { if (dbType.equals(String.class)) { // Override string behaviour return of(lessOrEqualString(cn)).add(getFirstOperandAsRaw(model)); } else { return super.lessOrEqual(cn, dbType, model); } }
@Override protected SqlPredicateFragment lessThan(String cn, Class<?> dbType, FieldPredicate<?> model) { if (dbType.equals(String.class)) { // Use collation for string types return of(lessThanString(cn)) .add(getFirstOperandAsRaw(model)); } else { return super.lessThan(cn, dbType, model); } }
@Override protected SqlPredicateFragment lessThan( final String cn, final Class<?> dbType, final FieldPredicate<?> model ) { if (dbType.equals(String.class)) { // Override string behaviour return of(lessThanString(cn)).add(getFirstOperandAsRaw(model)); } else { return super.lessThan(cn, dbType, model); } }
@Override protected SqlPredicateFragment equalIgnoreCaseHelper(String cn, FieldPredicate<?> model, boolean negated) { return of(compare(cn, " = ?", collationName), negated) .add(getFirstOperandAsRaw(model)); }