diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java index 66804ffef..6a885e2d9 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java @@ -181,10 +181,14 @@ public abstract class AbstractJPAQuery> extends JP List rv = new ArrayList(results.size()); FactoryExpression expr = (FactoryExpression)getMetadata().getProjection().get(0); for (Object o : results) { - if (o != null && !o.getClass().isArray()){ - o = new Object[]{o}; - } - rv.add(expr.newInstance((Object[])o)); + if (o != null) { + if (!o.getClass().isArray()){ + o = new Object[]{o}; + } + rv.add(expr.newInstance((Object[])o)); + } else { + rv.add(null); + } } return rv; } else { @@ -202,10 +206,14 @@ public abstract class AbstractJPAQuery> extends JP if (factoryExpressionUsed) { Object result = query.getSingleResult(); FactoryExpression expr = (FactoryExpression)getMetadata().getProjection().get(0); - if (result != null && !result.getClass().isArray()) { - result = new Object[]{result}; - } - return expr.newInstance((Object[])result); + if (result != null) { + if (!result.getClass().isArray()) { + result = new Object[]{result}; + } + return expr.newInstance((Object[])result); + } else { + return null; + } } else { return query.getSingleResult(); }