|
38 | 38 | import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
|
39 | 39 | import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
40 | 40 | import org.springframework.data.mongodb.core.query.TextCriteria;
|
| 41 | +import org.springframework.data.mongodb.repository.Meta; |
41 | 42 | import org.springframework.data.mongodb.repository.MongoRepository;
|
42 | 43 | import org.springframework.data.mongodb.repository.Person;
|
43 | 44 | import org.springframework.data.mongodb.repository.Person.Sex;
|
@@ -127,6 +128,12 @@ void doesNotDeriveFieldSpecForNormalDomainType() {
|
127 | 128 | assertThat(deriveQueryFromMethod("findPersonBy", new Object[0]).getFieldsObject()).isEmpty();
|
128 | 129 | }
|
129 | 130 |
|
| 131 | + @Test // GH-4852 |
| 132 | + void appliesMetaToPartTreeQuery() { |
| 133 | + assertThat(deriveQueryFromMethod("findPersonBy", new Object[0]).getMeta() |
| 134 | + .getMaxTimeMsec()).isEqualTo(1234L); |
| 135 | + } |
| 136 | + |
130 | 137 | @Test // DATAMONGO-1345
|
131 | 138 | void restrictsQueryToFieldsRequiredForProjection() {
|
132 | 139 |
|
@@ -193,7 +200,10 @@ private org.springframework.data.mongodb.core.query.Query deriveQueryFromMethod(
|
193 | 200 | PartTreeMongoQuery partTreeQuery = createQueryForMethod(method, types);
|
194 | 201 |
|
195 | 202 | MongoParameterAccessor accessor = new MongoParametersParameterAccessor(partTreeQuery.getQueryMethod(), args);
|
196 |
| - return partTreeQuery.createQuery(new ConvertingParameterAccessor(mongoOperationsMock.getConverter(), accessor)); |
| 203 | + |
| 204 | + org.springframework.data.mongodb.core.query.Query query = partTreeQuery.createQuery(new ConvertingParameterAccessor(mongoOperationsMock.getConverter(), accessor)); |
| 205 | + partTreeQuery.applyQueryMetaAttributesWhenPresent(query); |
| 206 | + return query; |
197 | 207 | }
|
198 | 208 |
|
199 | 209 | private PartTreeMongoQuery createQueryForMethod(String methodName, Class<?>... paramTypes) {
|
@@ -230,6 +240,7 @@ interface Repo extends MongoRepository<Person, Long> {
|
230 | 240 | @Query(fields = "{ 'firstname }")
|
231 | 241 | Person findByAge(Integer age);
|
232 | 242 |
|
| 243 | + @Meta(maxExecutionTimeMs = 1234) |
233 | 244 | Person findPersonBy();
|
234 | 245 |
|
235 | 246 | PersonProjection findPersonProjectedBy();
|
|
0 commit comments