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.
This commit is contained in:
Oliver Gierke
2012-11-13 18:23:02 +01:00
parent 6977fa87e6
commit 533d21281e
2 changed files with 13 additions and 1 deletions

View File

@@ -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);
} }
/** /**

View File

@@ -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;
} }