Class DefaultMongoRepositoryOperations

  • All Implemented Interfaces:
    io.micronaut.context.ApplicationContextProvider, MongoRepositoryOperations, io.micronaut.data.operations.async.AsyncCapableRepository, io.micronaut.data.operations.HintsCapableRepository, io.micronaut.data.operations.reactive.ReactiveCapableRepository, io.micronaut.data.operations.RepositoryOperations, io.micronaut.data.runtime.operations.internal.SyncCascadeOperations.SyncCascadeOperationsHelper<DefaultMongoRepositoryOperations.MongoOperationContext>, io.micronaut.data.runtime.query.MethodContextAwareStoredQueryDecorator, io.micronaut.data.runtime.query.PreparedQueryDecorator

    @RequiresSyncMongo
    @EachBean(com.mongodb.client.MongoClient.class)
    @Internal
    public final class DefaultMongoRepositoryOperations
    extends io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations
    implements MongoRepositoryOperations, io.micronaut.data.operations.async.AsyncCapableRepository, io.micronaut.data.operations.reactive.ReactiveCapableRepository, io.micronaut.data.runtime.operations.internal.SyncCascadeOperations.SyncCascadeOperationsHelper<DefaultMongoRepositoryOperations.MongoOperationContext>
    Default Mongo repository operations.
    Since:
    3.3
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.bson.BsonDocument association​(org.bson.codecs.configuration.CodecRegistry codecRegistry, java.lang.Object value, io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> persistentEntity, java.lang.Object child, io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> childPersistentEntity)  
      io.micronaut.data.runtime.operations.ExecutorAsyncOperations async()  
      protected <R> R convertResult​(org.bson.codecs.configuration.CodecRegistry codecRegistry, java.lang.Class<R> resultType, org.bson.BsonDocument result, boolean isDtoProjection)  
      <T> long count​(io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)  
      protected <T> org.bson.conversions.Bson createFilterIdAndVersion​(io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity, T entity, org.bson.codecs.configuration.CodecRegistry codecRegistry)  
      <E,​R>
      io.micronaut.data.model.runtime.StoredQuery<E,​R>
      decorate​(io.micronaut.aop.MethodInvocationContext<?,​?> context, io.micronaut.data.model.runtime.StoredQuery<E,​R> storedQuery)  
      <E,​R>
      io.micronaut.data.model.runtime.PreparedQuery<E,​R>
      decorate​(io.micronaut.data.model.runtime.PreparedQuery<E,​R> preparedQuery)  
      <T> int delete​(io.micronaut.data.model.runtime.DeleteOperation<T> operation)  
      <T> java.util.Optional<java.lang.Number> deleteAll​(io.micronaut.data.model.runtime.DeleteBatchOperation<T> operation)  
      java.util.Optional<java.lang.Number> executeDelete​(io.micronaut.data.model.runtime.PreparedQuery<?,​java.lang.Number> preparedQuery)  
      java.util.Optional<java.lang.Number> executeUpdate​(io.micronaut.data.model.runtime.PreparedQuery<?,​java.lang.Number> preparedQuery)  
      <T> boolean exists​(io.micronaut.data.model.runtime.PreparedQuery<T,​java.lang.Boolean> preparedQuery)  
      <T> java.lang.Iterable<T> findAll​(io.micronaut.data.model.runtime.PagedQuery<T> query)  
      <T,​R>
      java.lang.Iterable<R>
      findAll​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)  
      <T,​R>
      R
      findOne​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)  
      <T> T findOne​(java.lang.Class<T> type, java.io.Serializable id)  
      <R> io.micronaut.data.model.Page<R> findPage​(io.micronaut.data.model.runtime.PagedQuery<R> query)  
      <T> java.util.stream.Stream<T> findStream​(io.micronaut.data.model.runtime.PagedQuery<T> query)  
      <T,​R>
      java.util.stream.Stream<R>
      findStream​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)  
      protected org.bson.codecs.configuration.CodecRegistry getCodecRegistry​(com.mongodb.client.MongoDatabase mongoDatabase)  
      protected com.mongodb.client.MongoDatabase getDatabase​(io.micronaut.data.model.PersistentEntity persistentEntity, java.lang.Class<?> repositoryClass)  
      protected com.mongodb.client.model.DeleteOptions getDeleteOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)  
      protected com.mongodb.client.model.InsertManyOptions getInsertManyOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)  
      protected com.mongodb.client.model.InsertOneOptions getInsertOneOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)  
      protected <E,​R>
      MongoPreparedQuery<E,​R>
      getMongoPreparedQuery​(io.micronaut.data.model.runtime.PreparedQuery<E,​R> preparedQuery)  
      protected <E,​R>
      MongoStoredQuery<E,​R>
      getMongoStoredQuery​(io.micronaut.data.model.runtime.StoredQuery<E,​R> storedQuery)  
      protected com.mongodb.client.model.ReplaceOptions getReplaceOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)  
      protected void logAggregate​(MongoAggregation aggregation)  
      protected void logFind​(MongoFind find)  
      <T> T persist​(io.micronaut.data.model.runtime.InsertOperation<T> operation)  
      <T> java.lang.Iterable<T> persistAll​(io.micronaut.data.model.runtime.InsertBatchOperation<T> operation)  
      <T> java.util.List<T> persistBatch​(DefaultMongoRepositoryOperations.MongoOperationContext ctx, java.lang.Iterable<T> values, io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity, java.util.function.Predicate<T> predicate)  
      void persistManyAssociation​(DefaultMongoRepositoryOperations.MongoOperationContext ctx, io.micronaut.data.model.runtime.RuntimeAssociation runtimeAssociation, java.lang.Object value, io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> persistentEntity, java.lang.Object child, io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> childPersistentEntity)  
      void persistManyAssociationBatch​(DefaultMongoRepositoryOperations.MongoOperationContext ctx, io.micronaut.data.model.runtime.RuntimeAssociation runtimeAssociation, java.lang.Object value, io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> persistentEntity, java.lang.Iterable<java.lang.Object> child, io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> childPersistentEntity)  
      <T> T persistOne​(DefaultMongoRepositoryOperations.MongoOperationContext ctx, T value, io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity)  
      io.micronaut.data.operations.reactive.ReactiveRepositoryOperations reactive()  
      <T> T update​(io.micronaut.data.model.runtime.UpdateOperation<T> operation)  
      <T> java.lang.Iterable<T> updateAll​(io.micronaut.data.model.runtime.UpdateBatchOperation<T> operation)  
      <T> T updateOne​(DefaultMongoRepositoryOperations.MongoOperationContext ctx, T value, io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity)  
      • Methods inherited from class io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations

        checkOptimisticLocking, getApplicationContext, getConversionService, getEntity, getIdReader, isOnlySingleEndedJoins, triggerPostLoad
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface io.micronaut.context.ApplicationContextProvider

        getApplicationContext
      • Methods inherited from interface io.micronaut.data.operations.HintsCapableRepository

        getQueryHints
      • Methods inherited from interface io.micronaut.data.operations.RepositoryOperations

        getConversionService, getEntity
      • Methods inherited from interface io.micronaut.data.runtime.operations.internal.SyncCascadeOperations.SyncCascadeOperationsHelper

        isSupportsBatchDelete, isSupportsBatchInsert, isSupportsBatchUpdate
    • Field Detail

      • EMPTY

        protected static final org.bson.BsonDocument EMPTY
      • QUERY_LOG

        protected static final org.slf4j.Logger QUERY_LOG
    • Method Detail

      • findOne

        public <T> T findOne​(java.lang.Class<T> type,
                             java.io.Serializable id)
        Specified by:
        findOne in interface io.micronaut.data.operations.RepositoryOperations
      • findOne

        public <T,​R> R findOne​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)
        Specified by:
        findOne in interface io.micronaut.data.operations.RepositoryOperations
      • exists

        public <T> boolean exists​(io.micronaut.data.model.runtime.PreparedQuery<T,​java.lang.Boolean> preparedQuery)
        Specified by:
        exists in interface io.micronaut.data.operations.RepositoryOperations
      • findAll

        public <T> java.lang.Iterable<T> findAll​(io.micronaut.data.model.runtime.PagedQuery<T> query)
        Specified by:
        findAll in interface io.micronaut.data.operations.RepositoryOperations
      • count

        public <T> long count​(io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)
        Specified by:
        count in interface io.micronaut.data.operations.RepositoryOperations
      • findStream

        public <T> java.util.stream.Stream<T> findStream​(io.micronaut.data.model.runtime.PagedQuery<T> query)
        Specified by:
        findStream in interface io.micronaut.data.operations.RepositoryOperations
      • findPage

        public <R> io.micronaut.data.model.Page<R> findPage​(io.micronaut.data.model.runtime.PagedQuery<R> query)
        Specified by:
        findPage in interface io.micronaut.data.operations.RepositoryOperations
      • findAll

        public <T,​R> java.lang.Iterable<R> findAll​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)
        Specified by:
        findAll in interface io.micronaut.data.operations.RepositoryOperations
      • findStream

        public <T,​R> java.util.stream.Stream<R> findStream​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)
        Specified by:
        findStream in interface io.micronaut.data.operations.RepositoryOperations
      • persist

        public <T> T persist​(io.micronaut.data.model.runtime.InsertOperation<T> operation)
        Specified by:
        persist in interface io.micronaut.data.operations.RepositoryOperations
      • persistAll

        public <T> java.lang.Iterable<T> persistAll​(io.micronaut.data.model.runtime.InsertBatchOperation<T> operation)
        Specified by:
        persistAll in interface io.micronaut.data.operations.RepositoryOperations
      • update

        public <T> T update​(io.micronaut.data.model.runtime.UpdateOperation<T> operation)
        Specified by:
        update in interface io.micronaut.data.operations.RepositoryOperations
      • updateAll

        public <T> java.lang.Iterable<T> updateAll​(io.micronaut.data.model.runtime.UpdateBatchOperation<T> operation)
        Specified by:
        updateAll in interface io.micronaut.data.operations.RepositoryOperations
      • delete

        public <T> int delete​(io.micronaut.data.model.runtime.DeleteOperation<T> operation)
        Specified by:
        delete in interface io.micronaut.data.operations.RepositoryOperations
      • deleteAll

        public <T> java.util.Optional<java.lang.Number> deleteAll​(io.micronaut.data.model.runtime.DeleteBatchOperation<T> operation)
        Specified by:
        deleteAll in interface io.micronaut.data.operations.RepositoryOperations
      • executeUpdate

        public java.util.Optional<java.lang.Number> executeUpdate​(io.micronaut.data.model.runtime.PreparedQuery<?,​java.lang.Number> preparedQuery)
        Specified by:
        executeUpdate in interface io.micronaut.data.operations.RepositoryOperations
      • executeDelete

        public java.util.Optional<java.lang.Number> executeDelete​(io.micronaut.data.model.runtime.PreparedQuery<?,​java.lang.Number> preparedQuery)
        Specified by:
        executeDelete in interface io.micronaut.data.operations.RepositoryOperations
      • getDatabase

        protected com.mongodb.client.MongoDatabase getDatabase​(io.micronaut.data.model.PersistentEntity persistentEntity,
                                                               java.lang.Class<?> repositoryClass)
      • getCodecRegistry

        protected org.bson.codecs.configuration.CodecRegistry getCodecRegistry​(com.mongodb.client.MongoDatabase mongoDatabase)
      • persistManyAssociation

        public void persistManyAssociation​(DefaultMongoRepositoryOperations.MongoOperationContext ctx,
                                           io.micronaut.data.model.runtime.RuntimeAssociation runtimeAssociation,
                                           java.lang.Object value,
                                           io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> persistentEntity,
                                           java.lang.Object child,
                                           io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> childPersistentEntity)
        Specified by:
        persistManyAssociation in interface io.micronaut.data.runtime.operations.internal.SyncCascadeOperations.SyncCascadeOperationsHelper<DefaultMongoRepositoryOperations.MongoOperationContext>
      • persistManyAssociationBatch

        public void persistManyAssociationBatch​(DefaultMongoRepositoryOperations.MongoOperationContext ctx,
                                                io.micronaut.data.model.runtime.RuntimeAssociation runtimeAssociation,
                                                java.lang.Object value,
                                                io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> persistentEntity,
                                                java.lang.Iterable<java.lang.Object> child,
                                                io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> childPersistentEntity)
        Specified by:
        persistManyAssociationBatch in interface io.micronaut.data.runtime.operations.internal.SyncCascadeOperations.SyncCascadeOperationsHelper<DefaultMongoRepositoryOperations.MongoOperationContext>
      • async

        @NonNull
        public io.micronaut.data.runtime.operations.ExecutorAsyncOperations async()
        Specified by:
        async in interface io.micronaut.data.operations.async.AsyncCapableRepository
      • reactive

        @NonNull
        public io.micronaut.data.operations.reactive.ReactiveRepositoryOperations reactive()
        Specified by:
        reactive in interface io.micronaut.data.operations.reactive.ReactiveCapableRepository
      • getReplaceOptions

        protected final com.mongodb.client.model.ReplaceOptions getReplaceOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      • getInsertOneOptions

        protected final com.mongodb.client.model.InsertOneOptions getInsertOneOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      • getInsertManyOptions

        protected final com.mongodb.client.model.InsertManyOptions getInsertManyOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      • getDeleteOptions

        protected final com.mongodb.client.model.DeleteOptions getDeleteOptions​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      • getMongoStoredQuery

        protected <E,​R> MongoStoredQuery<E,​R> getMongoStoredQuery​(io.micronaut.data.model.runtime.StoredQuery<E,​R> storedQuery)
      • getMongoPreparedQuery

        protected <E,​R> MongoPreparedQuery<E,​R> getMongoPreparedQuery​(io.micronaut.data.model.runtime.PreparedQuery<E,​R> preparedQuery)
      • decorate

        public <E,​R> io.micronaut.data.model.runtime.PreparedQuery<E,​R> decorate​(io.micronaut.data.model.runtime.PreparedQuery<E,​R> preparedQuery)
        Specified by:
        decorate in interface io.micronaut.data.runtime.query.PreparedQueryDecorator
      • decorate

        public <E,​R> io.micronaut.data.model.runtime.StoredQuery<E,​R> decorate​(io.micronaut.aop.MethodInvocationContext<?,​?> context,
                                                                                           io.micronaut.data.model.runtime.StoredQuery<E,​R> storedQuery)
        Specified by:
        decorate in interface io.micronaut.data.runtime.query.MethodContextAwareStoredQueryDecorator
      • convertResult

        protected <R> R convertResult​(org.bson.codecs.configuration.CodecRegistry codecRegistry,
                                      java.lang.Class<R> resultType,
                                      org.bson.BsonDocument result,
                                      boolean isDtoProjection)
      • association

        protected org.bson.BsonDocument association​(org.bson.codecs.configuration.CodecRegistry codecRegistry,
                                                    java.lang.Object value,
                                                    io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> persistentEntity,
                                                    java.lang.Object child,
                                                    io.micronaut.data.model.runtime.RuntimePersistentEntity<java.lang.Object> childPersistentEntity)
      • createFilterIdAndVersion

        protected final <T> org.bson.conversions.Bson createFilterIdAndVersion​(io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity,
                                                                               T entity,
                                                                               org.bson.codecs.configuration.CodecRegistry codecRegistry)
      • logFind

        protected void logFind​(MongoFind find)