|
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