diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java index 5c1071e20..ac5645250 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java @@ -9,6 +9,7 @@ import java.util.List; import javax.annotation.Nullable; import javax.persistence.EntityManager; +import javax.persistence.NoResultException; import javax.persistence.Query; import org.slf4j.Logger; @@ -176,6 +177,12 @@ public abstract class AbstractJPAQuery> extends HQ logQuery(queryString); Query query = createQuery(queryString, null); reset(); - return (RT) query.getSingleResult(); + try{ + return (RT) query.getSingleResult(); + }catch(NoResultException e){ + logger.debug(e.getMessage(),e); + return null; + } + } } diff --git a/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java b/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java index ea9a4a431..fb9b9660d 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java @@ -5,6 +5,7 @@ */ package com.mysema.query; +import static org.junit.Assert.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -16,6 +17,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.UUID; import org.junit.Before; import org.junit.Test; @@ -308,5 +310,10 @@ public abstract class AbstractStandardTest { Param name = new Param(String.class,"name"); assertEquals("Bob123",query().from(cat).where(cat.name.eq(name)).uniqueResult(cat.name)); } + + @Test + public void null_as_uniqueResult(){ + assertNull(query().from(cat).where(cat.name.eq(UUID.randomUUID().toString())).uniqueResult(cat)); + } }