|
34 | 34 | import org.springframework.data.util.ClassTypeInformation;
|
35 | 35 | import org.springframework.data.util.TypeInformation;
|
36 | 36 | import org.springframework.util.Assert;
|
| 37 | +import org.springframework.util.ClassUtils; |
37 | 38 | import org.springframework.util.StringUtils;
|
38 | 39 |
|
39 | 40 | /**
|
@@ -122,13 +123,22 @@ public MongoEntityMetadata<?> getEntityInformation() {
|
122 | 123 | Class<?> returnedObjectType = getReturnedObjectType();
|
123 | 124 | Class<?> domainClass = getDomainClass();
|
124 | 125 |
|
125 |
| - MongoPersistentEntity<?> returnedEntity = mappingContext.getPersistentEntity(getReturnedObjectType()); |
126 |
| - MongoPersistentEntity<?> managedEntity = mappingContext.getPersistentEntity(domainClass); |
127 |
| - returnedEntity = returnedEntity == null ? managedEntity : returnedEntity; |
128 |
| - MongoPersistentEntity<?> collectionEntity = domainClass.isAssignableFrom(returnedObjectType) ? returnedEntity |
129 |
| - : managedEntity; |
| 126 | + if (ClassUtils.isPrimitiveOrWrapper(returnedObjectType)) { |
130 | 127 |
|
131 |
| - this.metadata = new SimpleMongoEntityMetadata<Object>((Class<Object>) returnedEntity.getType(), collectionEntity); |
| 128 | + this.metadata = new SimpleMongoEntityMetadata<Object>((Class<Object>) domainClass, |
| 129 | + mappingContext.getPersistentEntity(domainClass)); |
| 130 | + |
| 131 | + } else { |
| 132 | + |
| 133 | + MongoPersistentEntity<?> returnedEntity = mappingContext.getPersistentEntity(returnedObjectType); |
| 134 | + MongoPersistentEntity<?> managedEntity = mappingContext.getPersistentEntity(domainClass); |
| 135 | + returnedEntity = returnedEntity == null ? managedEntity : returnedEntity; |
| 136 | + MongoPersistentEntity<?> collectionEntity = domainClass.isAssignableFrom(returnedObjectType) ? returnedEntity |
| 137 | + : managedEntity; |
| 138 | + |
| 139 | + this.metadata = new SimpleMongoEntityMetadata<Object>((Class<Object>) returnedEntity.getType(), |
| 140 | + collectionEntity); |
| 141 | + } |
132 | 142 | }
|
133 | 143 |
|
134 | 144 | return this.metadata;
|
|
0 commit comments