@@ -324,8 +324,7 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <R> R doReadProjection(ConversionContext context, Bson bson,
|
||||
EntityProjection<R, ?> projection) {
|
||||
private <R> R doReadProjection(ConversionContext context, Bson bson, EntityProjection<R, ?> projection) {
|
||||
|
||||
MongoPersistentEntity<?> entity = getMappingContext().getRequiredPersistentEntity(projection.getActualDomainType());
|
||||
TypeInformation<?> mappedType = projection.getActualMappedType();
|
||||
@@ -657,8 +656,7 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App
|
||||
}
|
||||
|
||||
readAssociation(prop.getRequiredAssociation(), accessor, documentAccessor, dbRefProxyHandler, callback,
|
||||
propertyContext,
|
||||
evaluator);
|
||||
propertyContext, evaluator);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -680,8 +678,7 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App
|
||||
}
|
||||
|
||||
readAssociation(prop.getRequiredAssociation(), accessor, documentAccessor, dbRefProxyHandler, callback,
|
||||
propertyContext,
|
||||
evaluator);
|
||||
propertyContext, evaluator);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -2438,7 +2438,6 @@ class MappingMongoConverterUnitTests {
|
||||
verify(subTypeOfGenericTypeConverter).convert(eq(source));
|
||||
}
|
||||
|
||||
|
||||
@Test // GH-3660
|
||||
void usesCustomConverterForMapTypesOnWrite() {
|
||||
|
||||
@@ -2482,9 +2481,8 @@ class MappingMongoConverterUnitTests {
|
||||
}));
|
||||
converter.afterPropertiesSet();
|
||||
|
||||
org.bson.Document source = new org.bson.Document("1st", "one")
|
||||
.append("2nd", 2)
|
||||
.append("_class", TypeImplementingMap.class.getName());
|
||||
org.bson.Document source = new org.bson.Document("1st", "one").append("2nd", 2).append("_class",
|
||||
TypeImplementingMap.class.getName());
|
||||
|
||||
TypeImplementingMap target = converter.read(TypeImplementingMap.class, source);
|
||||
|
||||
@@ -2519,9 +2517,8 @@ class MappingMongoConverterUnitTests {
|
||||
converter.afterPropertiesSet();
|
||||
|
||||
org.bson.Document source = new org.bson.Document("typeImplementingMap",
|
||||
new org.bson.Document("1st", "one")
|
||||
.append("2nd", 2))
|
||||
.append("_class", TypeWrappingTypeImplementingMap.class.getName());
|
||||
new org.bson.Document("1st", "one").append("2nd", 2)).append("_class",
|
||||
TypeWrappingTypeImplementingMap.class.getName());
|
||||
|
||||
TypeWrappingTypeImplementingMap target = converter.read(TypeWrappingTypeImplementingMap.class, source);
|
||||
|
||||
@@ -2543,13 +2540,12 @@ class MappingMongoConverterUnitTests {
|
||||
@Test // GH-3686
|
||||
void readsCollectionContainingNullValue() {
|
||||
|
||||
org.bson.Document source = new org.bson.Document("items", Arrays.asList(new org.bson.Document("itemKey", "i1"), null, new org.bson.Document("itemKey", "i3")));
|
||||
org.bson.Document source = new org.bson.Document("items",
|
||||
Arrays.asList(new org.bson.Document("itemKey", "i1"), null, new org.bson.Document("itemKey", "i3")));
|
||||
|
||||
Order target = converter.read(Order.class, source);
|
||||
|
||||
assertThat(target.items)
|
||||
.map(it -> it != null ? it.itemKey : null)
|
||||
.containsExactly("i1", null, "i3");
|
||||
assertThat(target.items).map(it -> it != null ? it.itemKey : null).containsExactly("i1", null, "i3");
|
||||
}
|
||||
|
||||
@Test // GH-3686
|
||||
@@ -2565,14 +2561,13 @@ class MappingMongoConverterUnitTests {
|
||||
@Test // GH-3686
|
||||
void readsMapContainingNullValue() {
|
||||
|
||||
org.bson.Document source = new org.bson.Document("mapOfObjects", new org.bson.Document("item1", "i1").append("item2", null).append("item3", "i3"));
|
||||
org.bson.Document source = new org.bson.Document("mapOfObjects",
|
||||
new org.bson.Document("item1", "i1").append("item2", null).append("item3", "i3"));
|
||||
|
||||
ClassWithMapProperty target = converter.read(ClassWithMapProperty.class, source);
|
||||
|
||||
assertThat(target.mapOfObjects)
|
||||
.containsEntry("item1", "i1")
|
||||
.containsEntry("item2", null)
|
||||
.containsEntry("item3", "i3");
|
||||
assertThat(target.mapOfObjects).containsEntry("item1", "i1").containsEntry("item2", null).containsEntry("item3",
|
||||
"i3");
|
||||
}
|
||||
|
||||
@Test // GH-3670
|
||||
@@ -2584,7 +2579,7 @@ class MappingMongoConverterUnitTests {
|
||||
}));
|
||||
converter.afterPropertiesSet();
|
||||
|
||||
org.bson.Document source = new org.bson.Document("content", new Binary(new byte[] {0x00, 0x42}));
|
||||
org.bson.Document source = new org.bson.Document("content", new Binary(new byte[] { 0x00, 0x42 }));
|
||||
|
||||
GenericType<Object> target = converter.read(GenericType.class, source);
|
||||
assertThat(target.content).isInstanceOf(byte[].class);
|
||||
@@ -2593,17 +2588,20 @@ class MappingMongoConverterUnitTests {
|
||||
@Test // GH-3702
|
||||
void readsRawDocument() {
|
||||
|
||||
org.bson.Document source = new org.bson.Document("_id", "id-1").append("raw", new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1)));
|
||||
org.bson.Document source = new org.bson.Document("_id", "id-1").append("raw",
|
||||
new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1)));
|
||||
|
||||
WithRawDocumentProperties target = converter.read(WithRawDocumentProperties.class, source);
|
||||
|
||||
assertThat(target.raw).isInstanceOf(org.bson.Document.class).isEqualTo( new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1)));
|
||||
assertThat(target.raw).isInstanceOf(org.bson.Document.class)
|
||||
.isEqualTo(new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1)));
|
||||
}
|
||||
|
||||
@Test // GH-3702
|
||||
void readsListOfRawDocument() {
|
||||
|
||||
org.bson.Document source = new org.bson.Document("_id", "id-1").append("listOfRaw", Arrays.asList(new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1))));
|
||||
org.bson.Document source = new org.bson.Document("_id", "id-1").append("listOfRaw",
|
||||
Arrays.asList(new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1))));
|
||||
|
||||
WithRawDocumentProperties target = converter.read(WithRawDocumentProperties.class, source);
|
||||
|
||||
@@ -2614,11 +2612,12 @@ class MappingMongoConverterUnitTests {
|
||||
@Test // GH-3692
|
||||
void readsMapThatDoesNotComeAsDocument() {
|
||||
|
||||
org.bson.Document source = new org.bson.Document("_id", "id-1").append("mapOfObjects", Collections.singletonMap("simple", 1));
|
||||
org.bson.Document source = new org.bson.Document("_id", "id-1").append("mapOfObjects",
|
||||
Collections.singletonMap("simple", 1));
|
||||
|
||||
ClassWithMapProperty target = converter.read(ClassWithMapProperty.class, source);
|
||||
|
||||
assertThat(target.mapOfObjects).containsEntry("simple",1);
|
||||
assertThat(target.mapOfObjects).containsEntry("simple", 1);
|
||||
}
|
||||
|
||||
@Test // GH-3851
|
||||
@@ -2638,7 +2637,8 @@ class MappingMongoConverterUnitTests {
|
||||
|
||||
converter.writePropertyInternal(sourceValue, accessor, persistentProperty);
|
||||
|
||||
assertThat(accessor.getDocument()).isEqualTo(new org.bson.Document("pName", new org.bson.Document("_id", id.toString())));
|
||||
assertThat(accessor.getDocument())
|
||||
.isEqualTo(new org.bson.Document("pName", new org.bson.Document("_id", id.toString())));
|
||||
}
|
||||
|
||||
@Test // GH-2860
|
||||
@@ -2652,8 +2652,7 @@ class MappingMongoConverterUnitTests {
|
||||
.and((target, underlyingType) -> !converter.conversions.isSimpleType(target)),
|
||||
mappingContext);
|
||||
|
||||
EntityProjection<PersonProjection, Person> projection = discoverer
|
||||
.introspect(PersonProjection.class, Person.class);
|
||||
EntityProjection<PersonProjection, Person> projection = discoverer.introspect(PersonProjection.class, Person.class);
|
||||
PersonProjection person = converter.project(projection, source);
|
||||
|
||||
assertThat(person.getBirthDate()).isEqualTo(new LocalDate(1999, 12, 1));
|
||||
@@ -2671,8 +2670,7 @@ class MappingMongoConverterUnitTests {
|
||||
.and((target, underlyingType) -> !converter.conversions.isSimpleType(target)),
|
||||
mappingContext);
|
||||
|
||||
EntityProjection<PersonDto, Person> projection = introspector
|
||||
.introspect(PersonDto.class, Person.class);
|
||||
EntityProjection<PersonDto, Person> projection = introspector.introspect(PersonDto.class, Person.class);
|
||||
PersonDto person = converter.project(projection, source);
|
||||
|
||||
assertThat(person.getBirthDate()).isEqualTo(new LocalDate(1999, 12, 1));
|
||||
@@ -2763,8 +2761,7 @@ class MappingMongoConverterUnitTests {
|
||||
@EqualsAndHashCode
|
||||
@Getter
|
||||
static class Address implements InterfaceType {
|
||||
@Field("s")
|
||||
String street;
|
||||
@Field("s") String street;
|
||||
String city;
|
||||
}
|
||||
|
||||
@@ -3365,7 +3362,7 @@ class MappingMongoConverterUnitTests {
|
||||
}
|
||||
|
||||
@EqualsAndHashCode
|
||||
static class TypeImplementingMap implements Map<String,String> {
|
||||
static class TypeImplementingMap implements Map<String, String> {
|
||||
|
||||
String val1;
|
||||
int val2;
|
||||
@@ -3480,15 +3477,9 @@ class MappingMongoConverterUnitTests {
|
||||
|
||||
Author author = new Author();
|
||||
|
||||
public Book() {}
|
||||
|
||||
public Book(String id, String name, Author author) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.author = author;
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
static class Author {
|
||||
|
||||
@Id String id;
|
||||
@@ -3497,14 +3488,6 @@ class MappingMongoConverterUnitTests {
|
||||
|
||||
String lastName;
|
||||
|
||||
public Author() {}
|
||||
|
||||
public Author(String id, String firstName, String lastName) {
|
||||
this.id = id;
|
||||
this.firstName = firstName;
|
||||
this.lastName = lastName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user