|
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