|
66 | 66 | import org.springframework.data.mapping.PersistentPropertyAccessor;
|
67 | 67 | import org.springframework.data.mapping.callback.EntityCallbacks;
|
68 | 68 | import org.springframework.data.mapping.context.MappingContext;
|
69 |
| -import org.springframework.data.util.CloseableIterator; |
70 | 69 | import org.springframework.data.util.Streamable;
|
71 | 70 | import org.springframework.lang.NonNull;
|
72 | 71 | import org.springframework.lang.Nullable;
|
@@ -95,7 +94,8 @@ protected void initialize(ElasticsearchConverter elasticsearchConverter) {
|
95 | 94 | Assert.notNull(elasticsearchConverter, "elasticsearchConverter must not be null.");
|
96 | 95 |
|
97 | 96 | this.elasticsearchConverter = elasticsearchConverter;
|
98 |
| - MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext = this.elasticsearchConverter.getMappingContext(); |
| 97 | + MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext = this.elasticsearchConverter |
| 98 | + .getMappingContext(); |
99 | 99 | this.entityOperations = new EntityOperations(mappingContext);
|
100 | 100 | this.routingResolver = new DefaultRoutingResolver((SimpleElasticsearchMappingContext) mappingContext);
|
101 | 101 |
|
@@ -611,25 +611,30 @@ protected List<IndexedObjectInformation> checkForBulkOperationFailure(BulkRespon
|
611 | 611 | }
|
612 | 612 |
|
613 | 613 | protected void updateIndexedObject(Object entity, IndexedObjectInformation indexedObjectInformation) {
|
614 |
| - ElasticsearchPersistentEntity<?> persistentEntity = getRequiredPersistentEntity(entity.getClass()); |
615 |
| - PersistentPropertyAccessor<Object> propertyAccessor = persistentEntity.getPropertyAccessor(entity); |
616 |
| - ElasticsearchPersistentProperty idProperty = persistentEntity.getIdProperty(); |
617 | 614 |
|
618 |
| - // Only deal with text because ES generated Ids are strings! |
619 |
| - if (idProperty != null && idProperty.getType().isAssignableFrom(String.class)) { |
620 |
| - propertyAccessor.setProperty(idProperty, indexedObjectInformation.getId()); |
621 |
| - } |
| 615 | + ElasticsearchPersistentEntity<?> persistentEntity = elasticsearchConverter.getMappingContext() |
| 616 | + .getPersistentEntity(entity.getClass()); |
622 | 617 |
|
623 |
| - if (indexedObjectInformation.getSeqNo() != null && indexedObjectInformation.getPrimaryTerm() != null |
624 |
| - && persistentEntity.hasSeqNoPrimaryTermProperty()) { |
625 |
| - ElasticsearchPersistentProperty seqNoPrimaryTermProperty = persistentEntity.getSeqNoPrimaryTermProperty(); |
626 |
| - propertyAccessor.setProperty(seqNoPrimaryTermProperty, |
627 |
| - new SeqNoPrimaryTerm(indexedObjectInformation.getSeqNo(), indexedObjectInformation.getPrimaryTerm())); |
628 |
| - } |
| 618 | + if (persistentEntity != null) { |
| 619 | + PersistentPropertyAccessor<Object> propertyAccessor = persistentEntity.getPropertyAccessor(entity); |
| 620 | + ElasticsearchPersistentProperty idProperty = persistentEntity.getIdProperty(); |
| 621 | + |
| 622 | + // Only deal with text because ES generated Ids are strings! |
| 623 | + if (idProperty != null && idProperty.getType().isAssignableFrom(String.class)) { |
| 624 | + propertyAccessor.setProperty(idProperty, indexedObjectInformation.getId()); |
| 625 | + } |
629 | 626 |
|
630 |
| - if (indexedObjectInformation.getVersion() != null && persistentEntity.hasVersionProperty()) { |
631 |
| - ElasticsearchPersistentProperty versionProperty = persistentEntity.getVersionProperty(); |
632 |
| - propertyAccessor.setProperty(versionProperty, indexedObjectInformation.getVersion()); |
| 627 | + if (indexedObjectInformation.getSeqNo() != null && indexedObjectInformation.getPrimaryTerm() != null |
| 628 | + && persistentEntity.hasSeqNoPrimaryTermProperty()) { |
| 629 | + ElasticsearchPersistentProperty seqNoPrimaryTermProperty = persistentEntity.getSeqNoPrimaryTermProperty(); |
| 630 | + propertyAccessor.setProperty(seqNoPrimaryTermProperty, |
| 631 | + new SeqNoPrimaryTerm(indexedObjectInformation.getSeqNo(), indexedObjectInformation.getPrimaryTerm())); |
| 632 | + } |
| 633 | + |
| 634 | + if (indexedObjectInformation.getVersion() != null && persistentEntity.hasVersionProperty()) { |
| 635 | + ElasticsearchPersistentProperty versionProperty = persistentEntity.getVersionProperty(); |
| 636 | + propertyAccessor.setProperty(versionProperty, indexedObjectInformation.getVersion()); |
| 637 | + } |
633 | 638 | }
|
634 | 639 | }
|
635 | 640 |
|
|
0 commit comments