Browse Source

DATAMONGO-570 - Guard against null values in references.

QueryMapper does not try to convert null values into DBRef objects anymore but returns the plain null value as is.
pull/19/merge
Oliver Gierke 13 years ago
parent
commit
533d21281e
  1. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java
  2. 12
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java

@ -263,7 +263,7 @@ public class QueryMapper {
return result; return result;
} }
return source instanceof DBRef ? source : converter.toDBRef(source, property); return source == null || source instanceof DBRef ? source : converter.toDBRef(source, property);
} }
/** /**

12
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java

@ -335,6 +335,18 @@ public class QueryMapperUnitTests {
assertThat(reference.containsField("$in"), is(true)); assertThat(reference.containsField("$in"), is(true));
} }
/**
* @see DATAMONGO-570
*/
@Test
public void correctlyConvertsNullReference() {
Query query = query(where("reference").is(null));
DBObject object = mapper.getMappedObject(query.getQueryObject(), context.getPersistentEntity(WithDBRef.class));
assertThat(object.get("reference"), is(nullValue()));
}
class IdWrapper { class IdWrapper {
Object id; Object id;
} }

Loading…
Cancel
Save