From b8b865e46af8be3d5455a77e2e701e8070fea6d5 Mon Sep 17 00:00:00 2001 From: Steve Ebersole Date: Mon, 26 Nov 2012 10:34:59 -0600 Subject: [PATCH] HHH-7233 - unmuck EntityManager#getSingleResult wrt auto-setting of max results (cherry picked from commit 4785d7eb2e63f6d692908e84e29f64fa62b9a1a1) --- .../main/java/org/hibernate/ejb/QueryImpl.java | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/hibernate-entitymanager/src/main/java/org/hibernate/ejb/QueryImpl.java b/hibernate-entitymanager/src/main/java/org/hibernate/ejb/QueryImpl.java index 360b4f5b37..ed97a0fdc6 100755 --- a/hibernate-entitymanager/src/main/java/org/hibernate/ejb/QueryImpl.java +++ b/hibernate-entitymanager/src/main/java/org/hibernate/ejb/QueryImpl.java @@ -280,19 +280,7 @@ public class QueryImpl extends org.hibernate.ejb.AbstractQueryImpl impleme @SuppressWarnings({ "unchecked", "RedundantCast" }) public X getSingleResult() { try { - boolean mucked = false; - // IMPL NOTE : the mucking with max results here is attempting to help the user from shooting themselves - // in the foot in the case where they have a large query by limiting the query results to 2 max - // SQLQuery cannot be safely paginated, leaving the user's choice here. - if ( getSpecifiedMaxResults() != 1 && - ! ( SQLQuery.class.isAssignableFrom( query.getClass() ) ) ) { - mucked = true; - query.setMaxResults( 2 ); //avoid OOME if the list is huge - } - List result = query.list(); - if ( mucked ) { - query.setMaxResults( getSpecifiedMaxResults() ); - } + final List result = query.list(); if ( result.size() == 0 ) { NoResultException nre = new NoResultException( "No entity found for query" ); @@ -300,7 +288,7 @@ public class QueryImpl extends org.hibernate.ejb.AbstractQueryImpl impleme throw nre; } else if ( result.size() > 1 ) { - Set uniqueResult = new HashSet(result); + final Set uniqueResult = new HashSet(result); if ( uniqueResult.size() > 1 ) { NonUniqueResultException nure = new NonUniqueResultException( "result returns more than one elements" ); getEntityManager().handlePersistenceException( nure ); @@ -309,7 +297,6 @@ public class QueryImpl extends org.hibernate.ejb.AbstractQueryImpl impleme else { return uniqueResult.iterator().next(); } - } else { return result.get( 0 );