From 8ea0c87972049790677492ed2afb9e0b2e698020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Thu, 26 Aug 2010 15:48:14 +0000 Subject: [PATCH] #624727 : fixed getSingleResult() for null usage --- .../java/com/mysema/query/hql/jpa/AbstractJPAQuery.java | 9 ++++++++- .../test/java/com/mysema/query/AbstractStandardTest.java | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) 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)); + } }