diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index b70a5f4d44..db4b2d7149 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -64,6 +64,8 @@ import static org.jooq.impl.ExpressionOperator.ADD; import static org.jooq.impl.ExpressionOperator.DIVIDE; import static org.jooq.impl.ExpressionOperator.MULTIPLY; import static org.jooq.impl.ExpressionOperator.SUBTRACT; +import static org.jooq.tools.Convert.FALSE_VALUES; +import static org.jooq.tools.Convert.TRUE_VALUES; import static org.jooq.tools.StringUtils.defaultString; import java.math.BigDecimal; @@ -96,7 +98,6 @@ import org.jooq.SortField; import org.jooq.SortOrder; import org.jooq.WindowIgnoreNullsStep; import org.jooq.WindowPartitionByStep; -import org.jooq.tools.Convert; import org.jooq.tools.StringUtils; /** @@ -591,16 +592,16 @@ abstract class AbstractField extends AbstractQueryPart implements Field { Class type = getType(); if (type == String.class) { - return ((Field) this).in(Convert.TRUE_VALUES); + return ((Field) this).in((Collection) Utils.inline(TRUE_VALUES.toArray(new String[TRUE_VALUES.size()]))); } else if (Number.class.isAssignableFrom(type)) { - return ((Field) this).equal((Number) getDataType().convert(1)); + return ((Field) this).equal(inline((Number) getDataType().convert(1))); } else if (Boolean.class.isAssignableFrom(type)) { - return ((Field) this).equal(true); + return ((Field) this).equal(inline(true)); } else { - return cast(String.class).in(Convert.TRUE_VALUES); + return cast(String.class).in(TRUE_VALUES); } } @@ -610,16 +611,16 @@ abstract class AbstractField extends AbstractQueryPart implements Field { Class type = getType(); if (type == String.class) { - return ((Field) this).in(Convert.FALSE_VALUES); + return ((Field) this).in((Collection) Utils.inline(FALSE_VALUES.toArray(new String[FALSE_VALUES.size()]))); } else if (Number.class.isAssignableFrom(type)) { - return ((Field) this).equal((Number) getDataType().convert(0)); + return ((Field) this).equal(inline((Number) getDataType().convert(0))); } else if (Boolean.class.isAssignableFrom(type)) { - return ((Field) this).equal(false); + return ((Field) this).equal(inline(false)); } else { - return cast(String.class).in(Convert.FALSE_VALUES); + return cast(String.class).in((Collection) Utils.inline(FALSE_VALUES.toArray(new String[FALSE_VALUES.size()]))); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Utils.java b/jOOQ/src/main/java/org/jooq/impl/Utils.java index b7e149d110..f397298905 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Utils.java +++ b/jOOQ/src/main/java/org/jooq/impl/Utils.java @@ -50,7 +50,6 @@ import static org.jooq.impl.DSL.concat; import static org.jooq.impl.DSL.escape; import static org.jooq.impl.DSL.fieldByName; import static org.jooq.impl.DSL.getDataType; -import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.nullSafe; import static org.jooq.impl.DSL.val; import static org.jooq.impl.DefaultExecuteContext.localConnection; @@ -762,6 +761,18 @@ final class Utils { return result; } + static final List> inline(T[] values) { + List> result = new ArrayList>(); + + if (values != null) { + for (T value : values) { + result.add(DSL.inline(value)); + } + } + + return result; + } + /** * Return a list of unqualified {@link Field}s. */ @@ -1399,7 +1410,7 @@ final class Utils { /* [pro] xx xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx xxxxxxx x - xxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxx + xxxxxx xxxxxxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxx x xxxx xx [/pro] */