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