Search in sources :

Example 6 with BulkOperationContext

use of org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext in project spring-data-mongodb by spring-projects.

the class DefaultBulkOperationsUnitTests method setUp.

@BeforeEach
void setUp() {
    when(factory.getMongoDatabase()).thenReturn(database);
    when(factory.getExceptionTranslator()).thenReturn(new NullExceptionTranslator());
    when(database.getCollection(anyString(), eq(Document.class))).thenReturn(collection);
    mappingContext = new MongoMappingContext();
    mappingContext.afterPropertiesSet();
    converter = new MappingMongoConverter(dbRefResolver, mappingContext);
    template = new MongoTemplate(factory, converter);
    ops = new DefaultBulkOperations(template, "collection-1", new BulkOperationContext(BulkMode.ORDERED, Optional.of(mappingContext.getPersistentEntity(SomeDomainType.class)), new QueryMapper(converter), new UpdateMapper(converter), null, null));
}
Also used : BulkOperationContext(org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext) MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) MappingMongoConverter(org.springframework.data.mongodb.core.convert.MappingMongoConverter) Document(org.bson.Document) BsonDocument(org.bson.BsonDocument) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) UpdateMapper(org.springframework.data.mongodb.core.convert.UpdateMapper) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 7 with BulkOperationContext

use of org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext in project spring-data-mongodb by spring-projects.

the class DefaultBulkOperationsUnitTests method shouldRetainNestedArrayPathWithPlaceholdersForMappedEntity.

// DATAMONGO-2502
@Test
void shouldRetainNestedArrayPathWithPlaceholdersForMappedEntity() {
    DefaultBulkOperations ops = new DefaultBulkOperations(template, "collection-1", new BulkOperationContext(BulkMode.ORDERED, Optional.of(mappingContext.getPersistentEntity(OrderTest.class)), new QueryMapper(converter), new UpdateMapper(converter), null, null));
    ops.updateOne(new BasicQuery("{}"), Update.update("items.$.documents.0.fileId", "file-id")).execute();
    verify(collection).bulkWrite(captor.capture(), any());
    UpdateOneModel<Document> updateModel = (UpdateOneModel<Document>) captor.getValue().get(0);
    assertThat(updateModel.getUpdate()).isEqualTo(new Document("$set", new Document("items.$.documents.0.the_file_id", "file-id")));
}
Also used : BulkOperationContext(org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext) UpdateOneModel(com.mongodb.client.model.UpdateOneModel) BasicQuery(org.springframework.data.mongodb.core.query.BasicQuery) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) UpdateMapper(org.springframework.data.mongodb.core.convert.UpdateMapper) Document(org.bson.Document) BsonDocument(org.bson.BsonDocument) Test(org.junit.jupiter.api.Test)

Example 8 with BulkOperationContext

use of org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext in project spring-data-mongodb by spring-projects.

the class DefaultBulkOperationsIntegrationTests method createBulkOps.

private BulkOperations createBulkOps(BulkMode mode, Class<?> entityType) {
    Optional<? extends MongoPersistentEntity<?>> entity = entityType != null ? Optional.of(operations.getConverter().getMappingContext().getPersistentEntity(entityType)) : Optional.empty();
    BulkOperationContext bulkOperationContext = new BulkOperationContext(mode, entity, new QueryMapper(operations.getConverter()), new UpdateMapper(operations.getConverter()), null, null);
    DefaultBulkOperations bulkOps = new DefaultBulkOperations(operations, COLLECTION_NAME, bulkOperationContext);
    bulkOps.setDefaultWriteConcern(WriteConcern.ACKNOWLEDGED);
    return bulkOps;
}
Also used : BulkOperationContext(org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) UpdateMapper(org.springframework.data.mongodb.core.convert.UpdateMapper)

Aggregations

BulkOperationContext (org.springframework.data.mongodb.core.DefaultBulkOperations.BulkOperationContext)8 QueryMapper (org.springframework.data.mongodb.core.convert.QueryMapper)7 UpdateMapper (org.springframework.data.mongodb.core.convert.UpdateMapper)7 Test (org.junit.jupiter.api.Test)5 BsonDocument (org.bson.BsonDocument)4 Document (org.bson.Document)3 ApplicationEventPublisher (org.springframework.context.ApplicationEventPublisher)3 BeforeConvertEvent (org.springframework.data.mongodb.core.mapping.event.BeforeConvertEvent)3 BeforeSaveEvent (org.springframework.data.mongodb.core.mapping.event.BeforeSaveEvent)3 AfterSaveEvent (org.springframework.data.mongodb.core.mapping.event.AfterSaveEvent)2 MongoWriteException (com.mongodb.MongoWriteException)1 WriteError (com.mongodb.WriteError)1 BulkWriteError (com.mongodb.bulk.BulkWriteError)1 BulkWriteOptions (com.mongodb.client.model.BulkWriteOptions)1 InsertOneModel (com.mongodb.client.model.InsertOneModel)1 UpdateOneModel (com.mongodb.client.model.UpdateOneModel)1 BsonString (org.bson.BsonString)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1 MappingMongoConverter (org.springframework.data.mongodb.core.convert.MappingMongoConverter)1 MongoMappingContext (org.springframework.data.mongodb.core.mapping.MongoMappingContext)1