From 10c37b101d7d2efcdf5e419d462ccc19fbface18 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 28 Nov 2014 10:37:21 +0100 Subject: [PATCH] DATAMONGO-1105 - Added implementation of QueryDslPredicateExecutor.findAll(OrderSpecifier... orders). Renamed QuerydslRepositorySupportUnitTests to QuerydslRepositorySupportTests as it's an integration test. --- .../repository/support/QueryDslMongoRepository.java | 11 ++++++++++- .../AbstractPersonRepositoryIntegrationTests.java | 11 +++++++++++ ...Tests.java => QuerydslRepositorySupportTests.java} | 7 +++++-- 3 files changed, 26 insertions(+), 3 deletions(-) rename spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/{QuerydslRepositorySupportUnitTests.java => QuerydslRepositorySupportTests.java} (94%) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/QueryDslMongoRepository.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/QueryDslMongoRepository.java index f5afebc0e..8bb4dde24 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/QueryDslMongoRepository.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/QueryDslMongoRepository.java @@ -102,6 +102,15 @@ public class QueryDslMongoRepository extends SimpleM return createQueryFor(predicate).orderBy(orders).list(); } + /* + * (non-Javadoc) + * @see org.springframework.data.querydsl.QueryDslPredicateExecutor#findAll(com.mysema.query.types.OrderSpecifier[]) + */ + @Override + public Iterable findAll(OrderSpecifier... orders) { + return createQueryFor(new Predicate[0]).orderBy(orders).list(); + } + /* * (non-Javadoc) * @see org.springframework.data.querydsl.QueryDslPredicateExecutor#findAll(com.mysema.query.types.Predicate, org.springframework.data.domain.Pageable) @@ -128,7 +137,7 @@ public class QueryDslMongoRepository extends SimpleM * @param predicate * @return */ - private MongodbQuery createQueryFor(Predicate predicate) { + private MongodbQuery createQueryFor(Predicate... predicate) { Class domainType = getEntityInformation().getJavaType(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java index 6daa8c2f8..8966c9a95 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java @@ -1060,4 +1060,15 @@ public abstract class AbstractPersonRepositoryIntegrationTests { assertThat(persons, hasSize(1)); assertThat(persons, hasItem(alicia)); } + + /** + * @see DATAMONGO-1105 + */ + @Test + public void returnsOrderedResultsForQuerydslOrderSpecifier() { + + Iterable result = repository.findAll(person.firstname.asc()); + + assertThat(result, contains(alicia, boyd, carter, dave, leroi, oliver, stefan)); + } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportTests.java similarity index 94% rename from spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java rename to spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportTests.java index 6c272dfe8..c2378d563 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2011 the original author or authors. + * Copyright 2011-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,16 +37,18 @@ import com.mysema.query.mongodb.MongodbQuery; * Unit tests for {@link QuerydslRepositorySupport}. * * @author Oliver Gierke + * @author Christoph Strobl */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:infrastructure.xml") -public class QuerydslRepositorySupportUnitTests { +public class QuerydslRepositorySupportTests { @Autowired MongoOperations operations; Person person; @Before public void setUp() { + operations.remove(new Query(), Person.class); person = new Person("Dave", "Matthews"); operations.save(person); @@ -54,6 +56,7 @@ public class QuerydslRepositorySupportUnitTests { @Test public void providesMongoQuery() { + QPerson p = QPerson.person; QuerydslRepositorySupport support = new QuerydslRepositorySupport(operations) {}; MongodbQuery query = support.from(p).where(p.lastname.eq("Matthews"));