Skip to content

Commit cf2707f

Browse files
author
Thomas Darimont
committed
DATAMONGO-1085 - Sort can not use the metamodel classes generated by QueryDSL.
Added test case for sorting with a QueryDSL OrderSpecifier. Seems to work as expected.
1 parent 7cdd2d4 commit cf2707f

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
import org.springframework.data.mongodb.repository.Person.Sex;
5050
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
5151

52+
import com.google.common.collect.Lists;
53+
5254
/**
5355
* Base class for tests for {@link PersonRepository}.
5456
*
@@ -1071,4 +1073,32 @@ public void returnsOrderedResultsForQuerydslOrderSpecifier() {
10711073

10721074
assertThat(result, contains(alicia, boyd, carter, dave, leroi, oliver, stefan));
10731075
}
1076+
1077+
/**
1078+
* @see DATAMONGO-1085
1079+
*/
1080+
@Test
1081+
public void shouldSupportSortingByQueryDslOrderSpecifier() {
1082+
1083+
repository.deleteAll();
1084+
1085+
List<Person> persons = new ArrayList<Person>();
1086+
for (int i = 0; i < 3; i++) {
1087+
1088+
Person pers = new Person(String.format("Siggi %s", i), "Bar", 30);
1089+
pers.setAddress(new Address(String.format("Street %s", i), "12345", "SinCity"));
1090+
1091+
persons.add(pers);
1092+
}
1093+
1094+
repository.save(persons);
1095+
1096+
QPerson person = QPerson.person;
1097+
1098+
List<Person> result = Lists.newArrayList(repository.findAll(person.firstname.isNotNull(),
1099+
person.address.street.desc()));
1100+
1101+
assertThat(result, hasSize(persons.size()));
1102+
assertThat(result.get(0).getFirstname(), is(persons.get(2).getFirstname()));
1103+
}
10741104
}

0 commit comments

Comments
 (0)