@Nullable private MongoPersistentEntity<?> lookupPersistentEntity(String collection) { Collection<? extends MongoPersistentEntity<?>> entities = queryMapper.getMappingContext().getPersistentEntities(); return entities.stream() // .filter(entity -> entity.getCollection().equals(collection)) // .findFirst() // .orElse(null); }
@Nullable private MongoPersistentEntity<?> lookupPersistentEntity(@Nullable Class<?> entityType, String collection) { if (entityType != null) { return mapper.getMappingContext().getRequiredPersistentEntity(entityType); } Collection<? extends MongoPersistentEntity<?>> entities = mapper.getMappingContext().getPersistentEntities(); for (MongoPersistentEntity<?> entity : entities) { if (entity.getCollection().equals(collection)) { return entity; } } return null; }
public Mono<String> ensureIndex(final IndexDefinition indexDefinition) { return mongoOperations.execute(collectionName, collection -> { Document indexOptions = indexDefinition.getIndexOptions(); IndexOptions ops = IndexConverters.indexDefinitionToIndexOptionsConverter().convert(indexDefinition); if (indexOptions.containsKey(PARTIAL_FILTER_EXPRESSION_KEY)) { Assert.isInstanceOf(Document.class, indexOptions.get(PARTIAL_FILTER_EXPRESSION_KEY)); MongoPersistentEntity<?> entity = type .map(val -> (MongoPersistentEntity) queryMapper.getMappingContext().getRequiredPersistentEntity(val)) .orElseGet(() -> lookupPersistentEntity(collectionName)); ops = ops.partialFilterExpression( queryMapper.getMappedObject(indexOptions.get(PARTIAL_FILTER_EXPRESSION_KEY, Document.class), entity)); } return collection.createIndex(indexDefinition.getIndexKeys(), ops); }).next(); }
@Nullable private MongoPersistentEntity<?> lookupPersistentEntity(String collection) { Collection<? extends MongoPersistentEntity<?>> entities = queryMapper.getMappingContext().getPersistentEntities(); return entities.stream() // .filter(entity -> entity.getCollection().equals(collection)) // .findFirst() // .orElse(null); }
@Nullable private MongoPersistentEntity<?> lookupPersistentEntity(@Nullable Class<?> entityType, String collection) { if (entityType != null) { return mapper.getMappingContext().getRequiredPersistentEntity(entityType); } Collection<? extends MongoPersistentEntity<?>> entities = mapper.getMappingContext().getPersistentEntities(); for (MongoPersistentEntity<?> entity : entities) { if (entity.getCollection().equals(collection)) { return entity; } } return null; }
public Mono<String> ensureIndex(final IndexDefinition indexDefinition) { return mongoOperations.execute(collectionName, collection -> { Document indexOptions = indexDefinition.getIndexOptions(); IndexOptions ops = IndexConverters.indexDefinitionToIndexOptionsConverter().convert(indexDefinition); if (indexOptions.containsKey(PARTIAL_FILTER_EXPRESSION_KEY)) { Assert.isInstanceOf(Document.class, indexOptions.get(PARTIAL_FILTER_EXPRESSION_KEY)); MongoPersistentEntity<?> entity = type .map(val -> (MongoPersistentEntity) queryMapper.getMappingContext().getRequiredPersistentEntity(val)) .orElseGet(() -> lookupPersistentEntity(collectionName)); ops = ops.partialFilterExpression( queryMapper.getMappedObject(indexOptions.get(PARTIAL_FILTER_EXPRESSION_KEY, Document.class), entity)); } return collection.createIndex(indexDefinition.getIndexKeys(), ops); }).next(); }