Browse Source

DATAMONGO-1998 - Polishing.

Switch id field name check to equals or to match the last property path segment.

Original pull request: #567.
pull/585/head
Mark Paluch 8 years ago
parent
commit
f82b791f72
  1. 7
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializer.java
  2. 7
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializerUnitTests.java

7
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializer.java

@ -20,7 +20,6 @@ import java.util.HashSet; @@ -20,7 +20,6 @@ import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;
import com.mongodb.util.JSON;
import org.springframework.data.mapping.context.MappingContext;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.convert.QueryMapper;
@ -31,6 +30,7 @@ import org.springframework.util.ClassUtils; @@ -31,6 +30,7 @@ import org.springframework.util.ClassUtils;
import com.mongodb.DBObject;
import com.mongodb.DBRef;
import com.mongodb.util.JSON;
import com.querydsl.core.types.Constant;
import com.querydsl.core.types.Expression;
import com.querydsl.core.types.Operation;
@ -116,7 +116,7 @@ class SpringDataMongodbSerializer extends MongodbSerializer { @@ -116,7 +116,7 @@ class SpringDataMongodbSerializer extends MongodbSerializer {
@Override
protected DBObject asDBObject(String key, Object value) {
if (key.endsWith(ID_KEY)) {
if (ID_KEY.equals(key) || (key != null && key.endsWith("." + ID_KEY))) {
return convertId(key, value);
}
return super.asDBObject(key, value instanceof Pattern ? value : converter.convertToMongoType(value));
@ -134,8 +134,7 @@ class SpringDataMongodbSerializer extends MongodbSerializer { @@ -134,8 +134,7 @@ class SpringDataMongodbSerializer extends MongodbSerializer {
Object convertedId = mapper.convertId(idValue);
DBObject mappedIdValue = mapper.getMappedObject(super.asDBObject(key, convertedId),
null);
DBObject mappedIdValue = mapper.getMappedObject(super.asDBObject(key, convertedId), null);
return (DBObject) JSON.parse(JSON.serialize(mappedIdValue));
}

7
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializerUnitTests.java

@ -20,6 +20,7 @@ import static org.junit.Assert.*; @@ -20,6 +20,7 @@ import static org.junit.Assert.*;
import static org.springframework.data.mongodb.core.DBObjectTestUtils.*;
import java.util.Collections;
import java.util.List;
import org.bson.types.ObjectId;
import org.hamcrest.Matchers;
@ -50,7 +51,7 @@ import com.querydsl.core.types.dsl.StringPath; @@ -50,7 +51,7 @@ import com.querydsl.core.types.dsl.StringPath;
/**
* Unit tests for {@link SpringDataMongodbSerializer}.
*
*
* @author Oliver Gierke
* @author Christoph Strobl
*/
@ -158,9 +159,9 @@ public class SpringDataMongodbSerializerUnitTests { @@ -158,9 +159,9 @@ public class SpringDataMongodbSerializerUnitTests {
DBObject serialized = serializer.asDBObject("_id", new BasicDBObject("$in", objectIds));
DBObject _id = getAsDBObject(serialized, "_id");
Object[] $in = getTypedValue(_id, "$in", Object[].class);
List<ObjectId> $in = getTypedValue(_id, "$in", List.class);
assertThat($in, Matchers.<Object> arrayContaining(firstId, secondId));
assertThat($in, contains(firstId, secondId));
}
@Test // DATAMONGO-1485

Loading…
Cancel
Save