diff --git a/pom.xml b/pom.xml
index 75745189ed..ae4bcb7540 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.7.0.BUILD-SNAPSHOT
+ 1.7.0.DATAMONGO-1063-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-cross-store/pom.xml b/spring-data-mongodb-cross-store/pom.xml
index 40e8a0f253..db8a4cf648 100644
--- a/spring-data-mongodb-cross-store/pom.xml
+++ b/spring-data-mongodb-cross-store/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.7.0.BUILD-SNAPSHOT
+ 1.7.0.DATAMONGO-1063-SNAPSHOT
../pom.xml
@@ -48,7 +48,7 @@
org.springframework.data
spring-data-mongodb
- 1.7.0.BUILD-SNAPSHOT
+ 1.7.0.DATAMONGO-1063-SNAPSHOT
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index 13110137b6..ac039cec32 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -13,7 +13,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.7.0.BUILD-SNAPSHOT
+ 1.7.0.DATAMONGO-1063-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-log4j/pom.xml b/spring-data-mongodb-log4j/pom.xml
index 6ff09e4577..7cd9483493 100644
--- a/spring-data-mongodb-log4j/pom.xml
+++ b/spring-data-mongodb-log4j/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.7.0.BUILD-SNAPSHOT
+ 1.7.0.DATAMONGO-1063-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index bfcacd66eb..b9a0bdf421 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.7.0.BUILD-SNAPSHOT
+ 1.7.0.DATAMONGO-1063-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializer.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializer.java
index 92f6c0d3f8..96464be95e 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializer.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializer.java
@@ -15,6 +15,9 @@
*/
package org.springframework.data.mongodb.repository.support;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
import java.util.regex.Pattern;
import org.springframework.data.mapping.context.MappingContext;
@@ -41,7 +44,9 @@
*/
class SpringDataMongodbSerializer extends MongodbSerializer {
- private final String ID_KEY = "_id";
+ private static final String ID_KEY = "_id";
+ private static final Set PATH_TYPES = new HashSet(Arrays.asList(PathType.VARIABLE,
+ PathType.PROPERTY));
private final MongoConverter converter;
private final MappingContext extends MongoPersistentEntity>, MongoPersistentProperty> mappingContext;
@@ -138,7 +143,7 @@ private MongoPersistentProperty getPropertyFor(Path> path) {
Path> parent = path.getMetadata().getParent();
- if (parent == null) {
+ if (parent == null || !PATH_TYPES.contains(path.getMetadata().getPathType())) {
return null;
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Person.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Person.java
index 3186d78396..689b2e4558 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Person.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Person.java
@@ -46,6 +46,8 @@ public enum Sex {
@SuppressWarnings("unused") private Sex sex;
Date createdAt;
+ List skills;
+
@GeoSpatialIndexed private Point location;
private Address address;
@@ -271,6 +273,14 @@ public void setCreator(User creator) {
this.creator = creator;
}
+ public void setSkills(List skills) {
+ this.skills = skills;
+ }
+
+ public List getSkills() {
+ return skills;
+ }
+
/*
* (non-Javadoc)
*
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java
index 888c682bed..6c272dfe84 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslRepositorySupportUnitTests.java
@@ -18,6 +18,8 @@
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
+import java.util.Arrays;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -40,8 +42,7 @@
@ContextConfiguration("classpath:infrastructure.xml")
public class QuerydslRepositorySupportUnitTests {
- @Autowired
- MongoOperations operations;
+ @Autowired MongoOperations operations;
Person person;
@Before
@@ -54,9 +55,26 @@ public void setUp() {
@Test
public void providesMongoQuery() {
QPerson p = QPerson.person;
- QuerydslRepositorySupport support = new QuerydslRepositorySupport(operations) {
- };
+ QuerydslRepositorySupport support = new QuerydslRepositorySupport(operations) {};
MongodbQuery query = support.from(p).where(p.lastname.eq("Matthews"));
assertThat(query.uniqueResult(), is(person));
}
+
+ /**
+ * @see DATAMONGO-1063
+ */
+ @Test
+ public void shouldAllowAny() {
+
+ person.setSkills(Arrays.asList("vocalist", "songwriter", "guitarist"));
+
+ operations.save(person);
+
+ QPerson p = QPerson.person;
+ QuerydslRepositorySupport support = new QuerydslRepositorySupport(operations) {};
+
+ MongodbQuery query = support.from(p).where(p.skills.any().in("guitarist"));
+
+ assertThat(query.uniqueResult(), is(person));
+ }
}