diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/Configuration.java b/querydsl-sql/src/main/java/com/querydsl/sql/Configuration.java index d5ad9eb37..16d765d9c 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/Configuration.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/Configuration.java @@ -107,7 +107,7 @@ public final class Configuration { */ @SuppressWarnings("unchecked") public String asLiteral(Object o) { - if (Null.class.isInstance(o)) { + if (o == null || o instanceof Null) { return "null"; } else { Type type = javaTypeMapping.getType(o.getClass()); @@ -222,7 +222,7 @@ public final class Configuration { */ @SuppressWarnings({ "unchecked", "rawtypes" }) public void set(PreparedStatement stmt, Path path, int i, T value) throws SQLException { - if (Null.class.isInstance(value)) { + if (value == null || value instanceof Null) { Integer sqlType = null; if (path != null) { ColumnMetadata columnMetadata = ColumnMetadata.getColumnMetadata(path); diff --git a/querydsl-sql/src/test/java/com/querydsl/sql/SelectBase.java b/querydsl-sql/src/test/java/com/querydsl/sql/SelectBase.java index 783525243..02ee4346b 100644 --- a/querydsl-sql/src/test/java/com/querydsl/sql/SelectBase.java +++ b/querydsl-sql/src/test/java/com/querydsl/sql/SelectBase.java @@ -895,6 +895,12 @@ public class SelectBase extends AbstractBaseTest { assertEquals(0, query().from(employee).where(employee.id.in(ImmutableList.of())).fetchCount()); } + @Test + @ExcludeIn(DERBY) + public void in_null() { + assertEquals(1, query().from(employee).where(employee.id.in(1, null)).fetchCount()); + } + @Test @ExcludeIn({MYSQL, TERADATA}) public void in_subqueries() {