From a6d14a2602a2d592aa14e7cf3a969e195cb09535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 5 Apr 2016 22:06:39 +0300 Subject: [PATCH] Improve null handling --- .../src/main/java/com/querydsl/sql/Configuration.java | 4 ++-- querydsl-sql/src/test/java/com/querydsl/sql/SelectBase.java | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) 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() {