diff --git a/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java b/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java index 6f287bb5e..7d834f774 100644 --- a/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java +++ b/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java @@ -25,6 +25,13 @@ public interface SimpleProjectable { * @return */ CloseableIterator iterate(); + + /** + * Get the projection as a typed closeable Iterator with distinct elements + * + * @return + */ + CloseableIterator iterateDistinct(); /** * Get the projection as a typed List diff --git a/querydsl-core/src/main/java/com/mysema/query/support/SimpleQueryAdapter.java b/querydsl-core/src/main/java/com/mysema/query/support/SimpleQueryAdapter.java index 82c9da17c..39060f338 100644 --- a/querydsl-core/src/main/java/com/mysema/query/support/SimpleQueryAdapter.java +++ b/querydsl-core/src/main/java/com/mysema/query/support/SimpleQueryAdapter.java @@ -68,6 +68,11 @@ public class SimpleQueryAdapter implements SimpleQuery> public CloseableIterator iterate(){ return projectable.iterate(projection); } + + @Override + public CloseableIterator iterateDistinct(){ + return projectable.iterateDistinct(projection); + } @Override public List list() { diff --git a/querydsl-hibernate-search/src/main/java/com/mysema/query/search/SearchQuery.java b/querydsl-hibernate-search/src/main/java/com/mysema/query/search/SearchQuery.java index 84ecf9e79..f737b09c3 100644 --- a/querydsl-hibernate-search/src/main/java/com/mysema/query/search/SearchQuery.java +++ b/querydsl-hibernate-search/src/main/java/com/mysema/query/search/SearchQuery.java @@ -94,6 +94,11 @@ public class SearchQuery implements SimpleQuery>, SimpleProjec public CloseableIterator iterate(){ return new IteratorAdapter(createQuery(false).iterate()); } + + public CloseableIterator iterateDistinct(){ + return iterate(); + } + @Override public SearchQuery limit(long limit) { diff --git a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java index 57e6ca951..cc1ab855a 100644 --- a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java +++ b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java @@ -123,6 +123,11 @@ public class LuceneQuery implements SimpleQuery, } } + @Override + public CloseableIterator iterateDistinct() { + return iterate(); + } + @Override public List list() { return new IteratorAdapter(iterate()).asList(); diff --git a/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java b/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java index 47ad25892..026e676d1 100644 --- a/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java +++ b/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java @@ -90,6 +90,7 @@ public class MongodbQuery implements SimpleQuery>, return queryMixin.set(param, value); } + @Override public CloseableIterator iterate() { final DBCursor cursor = createCursor(); return new CloseableIterator() { @@ -114,6 +115,11 @@ public class MongodbQuery implements SimpleQuery>, }; } + @Override + public CloseableIterator iterateDistinct() { + return iterate(); + } + @Override public List list() { DBCursor cursor = createCursor();