diff --git a/querydsl-collections/src/main/java/com/querydsl/collections/AbstractCollQuery.java b/querydsl-collections/src/main/java/com/querydsl/collections/AbstractCollQuery.java index 5f3211ec36..6c07a89f2f 100644 --- a/querydsl-collections/src/main/java/com/querydsl/collections/AbstractCollQuery.java +++ b/querydsl-collections/src/main/java/com/querydsl/collections/AbstractCollQuery.java @@ -196,7 +196,7 @@ public QueryResults fetchResults() { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { queryMixin.setUnique(true); if (queryMixin.getMetadata().getModifiers().getLimit() == null) { limit(2L); diff --git a/querydsl-core/src/main/java/com/querydsl/core/Fetchable.java b/querydsl-core/src/main/java/com/querydsl/core/Fetchable.java index 971516f755..52fd0874ec 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/Fetchable.java +++ b/querydsl-core/src/main/java/com/querydsl/core/Fetchable.java @@ -46,7 +46,7 @@ public interface Fetchable { * @throws NonUniqueResultException if there is more than one matching result * @return first result or null */ - T fetchOne(); + T fetchOne() throws NonUniqueResultException; /** * Get the projection as a typed closeable Iterator diff --git a/querydsl-core/src/test/java/com/querydsl/core/support/DummyFetchable.java b/querydsl-core/src/test/java/com/querydsl/core/support/DummyFetchable.java index abc9569f69..de637ad901 100644 --- a/querydsl-core/src/test/java/com/querydsl/core/support/DummyFetchable.java +++ b/querydsl-core/src/test/java/com/querydsl/core/support/DummyFetchable.java @@ -37,7 +37,7 @@ public T fetchFirst() { @Nullable @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { if (results.size() > 1) { throw new NonUniqueResultException(); } else if (results.isEmpty()) { diff --git a/querydsl-hibernate-search/src/main/java/com/querydsl/hibernate/search/AbstractSearchQuery.java b/querydsl-hibernate-search/src/main/java/com/querydsl/hibernate/search/AbstractSearchQuery.java index a90db45d27..2b37c4e89b 100644 --- a/querydsl-hibernate-search/src/main/java/com/querydsl/hibernate/search/AbstractSearchQuery.java +++ b/querydsl-hibernate-search/src/main/java/com/querydsl/hibernate/search/AbstractSearchQuery.java @@ -152,11 +152,11 @@ public T fetchFirst() { @SuppressWarnings("unchecked") @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { try { return (T) createQuery(false).uniqueResult(); } catch (org.hibernate.NonUniqueResultException e) { - throw new NonUniqueResultException(); + throw new NonUniqueResultException(e); } } diff --git a/querydsl-jdo/src/main/java/com/querydsl/jdo/AbstractJDOQuery.java b/querydsl-jdo/src/main/java/com/querydsl/jdo/AbstractJDOQuery.java index 0639189bd5..08819c991f 100644 --- a/querydsl-jdo/src/main/java/com/querydsl/jdo/AbstractJDOQuery.java +++ b/querydsl-jdo/src/main/java/com/querydsl/jdo/AbstractJDOQuery.java @@ -307,7 +307,7 @@ public String toString() { @Nullable @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { if (getMetadata().getModifiers().getLimit() == null) { limit(2); } diff --git a/querydsl-jdo/src/main/java/com/querydsl/jdo/sql/AbstractSQLQuery.java b/querydsl-jdo/src/main/java/com/querydsl/jdo/sql/AbstractSQLQuery.java index f5b42a1ac7..21aa3bda16 100644 --- a/querydsl-jdo/src/main/java/com/querydsl/jdo/sql/AbstractSQLQuery.java +++ b/querydsl-jdo/src/main/java/com/querydsl/jdo/sql/AbstractSQLQuery.java @@ -222,7 +222,7 @@ public String toString() { @SuppressWarnings("unchecked") @Override @Nullable - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { if (getMetadata().getModifiers().getLimit() == null) { limit(2); } diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/JPASubQuery.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/JPASubQuery.java index 8d67641129..563accf253 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/JPASubQuery.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/JPASubQuery.java @@ -15,6 +15,7 @@ import com.mysema.commons.lang.CloseableIterator; import com.querydsl.core.DefaultQueryMetadata; +import com.querydsl.core.NonUniqueResultException; import com.querydsl.core.QueryMetadata; import com.querydsl.core.QueryResults; import com.querydsl.core.Tuple; @@ -62,7 +63,7 @@ public JPASubQuery select(Expression... exprs) { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { throw new UnsupportedOperationException(); } diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/AbstractHibernateQuery.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/AbstractHibernateQuery.java index a4cc7fe872..1892474ccc 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/AbstractHibernateQuery.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/AbstractHibernateQuery.java @@ -322,14 +322,14 @@ public Q setTimeout(int timeout) { @SuppressWarnings("unchecked") @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { try { QueryModifiers modifiers = getMetadata().getModifiers(); Query query = createQuery(modifiers, false); try { return (T) query.uniqueResult(); } catch (org.hibernate.NonUniqueResultException e) { - throw new NonUniqueResultException(); + throw new NonUniqueResultException(e); } } finally { reset(); diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/sql/AbstractHibernateSQLQuery.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/sql/AbstractHibernateSQLQuery.java index af4f42ee8d..d05b9c5505 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/sql/AbstractHibernateSQLQuery.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/hibernate/sql/AbstractHibernateSQLQuery.java @@ -211,7 +211,7 @@ protected void reset() { @SuppressWarnings("unchecked") @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { try { Query query = createQuery(); return (T) uniqueResult(query); @@ -225,7 +225,7 @@ private Object uniqueResult(Query query) { try { return query.uniqueResult(); } catch (org.hibernate.NonUniqueResultException e) { - throw new NonUniqueResultException(); + throw new NonUniqueResultException(e); } } diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/impl/AbstractJPAQuery.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/impl/AbstractJPAQuery.java index 34d93451fd..0832e9fe6f 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/impl/AbstractJPAQuery.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/impl/AbstractJPAQuery.java @@ -247,7 +247,7 @@ protected void reset() { @Nullable @SuppressWarnings("unchecked") @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { try { Query query = createQuery(getMetadata().getModifiers(), false); return (T) getSingleResult(query); @@ -255,7 +255,7 @@ public T fetchOne() { logger.trace(e.getMessage(),e); return null; } catch (javax.persistence.NonUniqueResultException e) { - throw new NonUniqueResultException(); + throw new NonUniqueResultException(e); } finally { reset(); } diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/sql/AbstractJPASQLQuery.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/sql/AbstractJPASQLQuery.java index 9604d6317d..6b976a5f4a 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/sql/AbstractJPASQLQuery.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/sql/AbstractJPASQLQuery.java @@ -292,7 +292,7 @@ protected void reset() { @Override @SuppressWarnings("unchecked") - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { Query query = createQuery(); return (T) uniqueResult(query); } @@ -305,7 +305,7 @@ private Object uniqueResult(Query query) { logger.trace(e.getMessage(),e); return null; } catch (javax.persistence.NonUniqueResultException e) { - throw new NonUniqueResultException(); + throw new NonUniqueResultException(e); } finally { reset(); } diff --git a/querydsl-jpa/src/test/java/com/querydsl/jpa/QueryHelper.java b/querydsl-jpa/src/test/java/com/querydsl/jpa/QueryHelper.java index ead6a0eb36..fdceac064b 100644 --- a/querydsl-jpa/src/test/java/com/querydsl/jpa/QueryHelper.java +++ b/querydsl-jpa/src/test/java/com/querydsl/jpa/QueryHelper.java @@ -26,6 +26,7 @@ import com.mysema.commons.lang.CloseableIterator; import com.querydsl.core.DefaultQueryMetadata; +import com.querydsl.core.NonUniqueResultException; import com.querydsl.core.QueryMetadata; import com.querydsl.core.QueryResults; import com.querydsl.core.Tuple; @@ -86,7 +87,7 @@ public void parse() throws RecognitionException, TokenStreamException { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { throw new UnsupportedOperationException(); } diff --git a/querydsl-lucene3/src/main/java/com/querydsl/lucene3/AbstractLuceneQuery.java b/querydsl-lucene3/src/main/java/com/querydsl/lucene3/AbstractLuceneQuery.java index 59827b0960..156afdd951 100644 --- a/querydsl-lucene3/src/main/java/com/querydsl/lucene3/AbstractLuceneQuery.java +++ b/querydsl-lucene3/src/main/java/com/querydsl/lucene3/AbstractLuceneQuery.java @@ -330,7 +330,7 @@ public T fetchFirst() { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { return oneResult(true); } diff --git a/querydsl-lucene4/src/main/java/com/querydsl/lucene4/AbstractLuceneQuery.java b/querydsl-lucene4/src/main/java/com/querydsl/lucene4/AbstractLuceneQuery.java index cb4ad88683..994e0585ca 100644 --- a/querydsl-lucene4/src/main/java/com/querydsl/lucene4/AbstractLuceneQuery.java +++ b/querydsl-lucene4/src/main/java/com/querydsl/lucene4/AbstractLuceneQuery.java @@ -332,7 +332,7 @@ public T fetchFirst() { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { return oneResult(true); } diff --git a/querydsl-lucene5/src/main/java/com/querydsl/lucene5/AbstractLuceneQuery.java b/querydsl-lucene5/src/main/java/com/querydsl/lucene5/AbstractLuceneQuery.java index 16ddfc1d55..b18bc86852 100644 --- a/querydsl-lucene5/src/main/java/com/querydsl/lucene5/AbstractLuceneQuery.java +++ b/querydsl-lucene5/src/main/java/com/querydsl/lucene5/AbstractLuceneQuery.java @@ -372,7 +372,7 @@ public T fetchFirst() { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { return oneResult(true); } diff --git a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AbstractMongodbQuery.java b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AbstractMongodbQuery.java index b343614dcb..e7be5ccd83 100644 --- a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AbstractMongodbQuery.java +++ b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AbstractMongodbQuery.java @@ -338,7 +338,7 @@ public K fetchOne(Path... paths) { } @Override - public K fetchOne() { + public K fetchOne() throws NonUniqueResultException { try { Long limit = queryMixin.getMetadata().getModifiers().getLimit(); if (limit == null) { diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/ProjectableSQLQuery.java b/querydsl-sql/src/main/java/com/querydsl/sql/ProjectableSQLQuery.java index 7f34f3a791..4574aa28fe 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/ProjectableSQLQuery.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/ProjectableSQLQuery.java @@ -25,6 +25,7 @@ import com.mysema.commons.lang.CloseableIterator; import com.querydsl.core.FetchableQuery; import com.querydsl.core.JoinFlag; +import com.querydsl.core.NonUniqueResultException; import com.querydsl.core.Query; import com.querydsl.core.QueryFlag; import com.querydsl.core.QueryFlag.Position; @@ -391,7 +392,7 @@ public Q unionAll(Path alias, SubQueryExpression... sq) { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { if (getMetadata().getModifiers().getLimit() == null && !queryMixin.getMetadata().getProjection().toString().contains("count(")) { limit(2); diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/UnionImpl.java b/querydsl-sql/src/main/java/com/querydsl/sql/UnionImpl.java index 6e238bf011..08b1d6cf5b 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/UnionImpl.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/UnionImpl.java @@ -18,6 +18,7 @@ import javax.annotation.Nullable; import com.mysema.commons.lang.CloseableIterator; +import com.querydsl.core.NonUniqueResultException; import com.querydsl.core.Query; import com.querydsl.core.QueryMetadata; import com.querydsl.core.QueryResults; @@ -55,7 +56,7 @@ public T fetchFirst() { } @Override - public T fetchOne() { + public T fetchOne() throws NonUniqueResultException { return query.fetchOne(); }