Browse Source

DATAMONGO-776 - Improvement in TypeBasedAggregationOperationContext.

TypeBasedAggregationOperationContext's getReference(…) doesn't use a PropertyPath anymore to avoid running the camel case property resolution.
pull/82/head
Oliver Gierke 12 years ago
parent
commit
a120ce2bb1
  1. 5
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContext.java
  2. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContextUnitTests.java

5
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContext.java

@ -88,11 +88,10 @@ public class TypeBasedAggregationOperationContext implements AggregationOperatio
*/ */
@Override @Override
public FieldReference getReference(String name) { public FieldReference getReference(String name) {
PropertyPath path = PropertyPath.from(name, type);
PersistentPropertyPath<MongoPersistentProperty> propertyPath = mappingContext.getPersistentPropertyPath(path); PersistentPropertyPath<MongoPersistentProperty> propertyPath = mappingContext.getPersistentPropertyPath(name, type);
return getReferenceFor(field(path.getLeafProperty().getSegment(), return getReferenceFor(field(propertyPath.getLeafProperty().getName(),
propertyPath.toDotPath(MongoPersistentProperty.PropertyToFieldNameConverter.INSTANCE))); propertyPath.toDotPath(MongoPersistentProperty.PropertyToFieldNameConverter.INSTANCE)));
} }

4
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContextUnitTests.java

@ -23,7 +23,7 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner; import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.data.mapping.PropertyReferenceException; import org.springframework.data.mapping.model.MappingException;
import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.QueryMapper; import org.springframework.data.mongodb.core.convert.QueryMapper;
@ -56,7 +56,7 @@ public class TypeBasedAggregationOperationContextUnitTests {
assertThat(getContext(Foo.class).getReference("bar"), is(notNullValue())); assertThat(getContext(Foo.class).getReference("bar"), is(notNullValue()));
} }
@Test(expected = PropertyReferenceException.class) @Test(expected = MappingException.class)
public void rejectsInvalidFieldReference() { public void rejectsInvalidFieldReference() {
getContext(Foo.class).getReference("foo"); getContext(Foo.class).getReference("foo");
} }

Loading…
Cancel
Save