Package dev.morphia

Interface Datastore

    • Method Detail

      • createAggregation

        AggregationPipeline createAggregation​(Class source)
        Returns a new query bound to the kind (a specific DBCollection)
        Parameters:
        source - The class to create aggregation against
        Returns:
        the aggregation pipeline
      • createQuery

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> Query<T> createQuery​(Class<T> type)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Returns a new query bound to the collection (a specific DBCollection)
        Type Parameters:
        T - the type of the query
        Parameters:
        type - The collection to query
        Returns:
        the query
      • find

        <T> Query<T> find​(Class<T> clazz)
        Find all instances by type
        Type Parameters:
        T - the type to query
        Parameters:
        clazz - the class to use for mapping the results
        Returns:
        the query
      • createUpdateOperations

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> UpdateOperations<T> createUpdateOperations​(Class<T> clazz)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use Query.update() instead
        The builder for all update operations
        Type Parameters:
        T - the type to update
        Parameters:
        clazz - the type to update
        Returns:
        the new UpdateOperations instance
      • getMapper

        Mapper getMapper()
        Returns:
        the Mapper used by this Datastore
        Since:
        1.5
        Developer note.
        This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
      • delete

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> com.mongodb.client.result.DeleteResult delete​(Query<T> query)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use Query.remove() instead
        Deletes entities based on the query
        Type Parameters:
        T - the type to delete
        Parameters:
        query - the query to use when finding documents to delete
        Returns:
        results of the delete
      • delete

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> com.mongodb.client.result.DeleteResult delete​(Query<T> query,
                                                                  DeleteOptions options)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Deletes entities based on the query
        Type Parameters:
        T - the type to delete
        Parameters:
        query - the query to use when finding documents to delete
        options - the options to apply to the delete
        Returns:
        results of the delete
        Since:
        1.3
      • delete

        <T> com.mongodb.client.result.DeleteResult delete​(T entity)
        Deletes the given entity (by @Id)
        Type Parameters:
        T - the type to delete
        Parameters:
        entity - the entity to delete
        Returns:
        results of the delete
      • delete

        <T> com.mongodb.client.result.DeleteResult delete​(T entity,
                                                          DeleteOptions options)
        Deletes the given entity (by @Id), with the WriteConcern
        Type Parameters:
        T - the type to delete
        Parameters:
        entity - the entity to delete
        options - the options to use when deleting
        Returns:
        results of the delete
        Since:
        1.3
      • enableDocumentValidation

        void enableDocumentValidation()
        Process any Validation annotations for document validation.
        Since:
        1.3
        MongoDB documentation
        core/document-validation/
      • ensureCaps

        void ensureCaps()
        ensure capped collections for Entity(s)
      • ensureIndexes

        void ensureIndexes()
        Ensures (creating if necessary) the indexes found during class mapping
        See Also:
        Indexes, Indexed, Text
      • ensureIndexes

        <T> void ensureIndexes​(Class<T> clazz)
        Ensures (creating if necessary) the indexes found during class mapping
        Type Parameters:
        T - the type to index
        Parameters:
        clazz - the class from which to get the index definitions
        See Also:
        Indexes, Indexed, Text
      • findAndDelete

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> T findAndDelete​(Query<T> query)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use Query.delete() instead
        Deletes the given entities based on the query (first item only).
        Type Parameters:
        T - the type to query
        Parameters:
        query - the query to use when finding entities to delete
        Returns:
        the deleted Entity
      • findAndDelete

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> T findAndDelete​(Query<T> query,
                                    FindAndModifyOptions options)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Deletes the given entities based on the query (first item only).
        Type Parameters:
        T - the type to query
        Parameters:
        query - the query to use when finding entities to delete
        options - the options to apply to the delete
        Returns:
        the deleted Entity
        Since:
        1.3
      • findAndModify

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> T findAndModify​(Query<T> query,
                                    UpdateOperations<T> operations)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use Query.modify() instead
        Find the first Entity from the Query, and modify it.
        Type Parameters:
        T - the type to query
        Parameters:
        query - the query to use when finding entities to update
        operations - the updates to apply to the matched documents
        Returns:
        The modified Entity (the result of the update)
      • get

        @Deprecated
        default <T,​V> Query<T> get​(Class<T> clazz,
                                         Iterable<V> ids)
        Deprecated.
        use Query instead.
        Find the given entities (by id); shorthand for find("_id in", ids)
        Type Parameters:
        T - the type to fetch
        V - the type of the ID
        Parameters:
        clazz - the class to use for mapping
        ids - the IDs to query
        Returns:
        the query to find the entities
        Developer note. Inline this method to update to the new usage
      • get

        @Deprecated
        default <T> T get​(T entity)
        Deprecated.
        use Query instead
        Find the given entity (by collectionName/id); think of this as refresh
        Type Parameters:
        T - the type to fetch
        Parameters:
        entity - The entity to search for
        Returns:
        the matched entity. may be null.
        Developer note. Inline this method to update to the new usage
      • getByKey

        @Deprecated
        <T> T getByKey​(Class<T> clazz,
                       Key<T> key)
        Deprecated.
        use a Query instead
        Find the given entity (by collectionName/id);
        Type Parameters:
        T - the type to fetch
        Parameters:
        clazz - the class to use for mapping
        key - the key search with
        Returns:
        the matched entity. may be null.
      • getByKeys

        @Deprecated
        <T> List<T> getByKeys​(Class<T> clazz,
                              Iterable<Key<T>> keys)
        Deprecated.
        use a Query instead
        Find the given entities (by id), verifying they are of the correct type; shorthand for find("_id in", ids)
        Type Parameters:
        T - the type to fetch
        Parameters:
        clazz - the class to use for mapping
        keys - the keys to search with
        Returns:
        the matched entities. may be null.
      • getByKeys

        @Deprecated
        <T> List<T> getByKeys​(Iterable<Key<T>> keys)
        Deprecated.
        use a Query instead
        Find the given entities (by id); shorthand for find("_id in", ids)
        Type Parameters:
        T - the type to fetch
        Parameters:
        keys - the keys to search with
        Returns:
        the matched entities. may be null.
      • getCollection

        <T> com.mongodb.client.MongoCollection<T> getCollection​(Class<T> clazz)
        Type Parameters:
        T - the type of the collection
        Parameters:
        clazz - the class to use for mapping
        Returns:
        the mapped collection for the collection
        Developer note.
        This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
      • getDatabase

        com.mongodb.client.MongoDatabase getDatabase()
        Returns:
        the MongoDatabase used by this DataStore
        Since:
        1.5
        Developer note.
        This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
      • getKey

        <T> Key<T> getKey​(T entity)
        Creates a (type-safe) reference to the entity; if stored this will become a DBRef
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity whose key is to be returned
        Returns:
        the Key
      • setQueryFactory

        void setQueryFactory​(QueryFactory queryFactory)
        Replaces the current QueryFactory with the given value.
        Parameters:
        queryFactory - the QueryFactory to use
        See Also:
        QueryFactory
      • getSession

        default com.mongodb.client.ClientSession getSession()
        Returns the session this datastore is attached to or null if none is attached.
        Returns:
        the session
        Since:
        2.0
        Developer note.
        This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.
      • merge

        <T> T merge​(T entity)
        Work as if you did an update with each field in the entity doing a $set; Only at the top level of the entity.
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity to merge back in to the database
        Returns:
        the new merged entity. NOTE: this is a database fetch.
      • merge

        <T> T merge​(T entity,
                    InsertOneOptions options)
        Work as if you did an update with each field in the entity doing a $set; Only at the top level of the entity.
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity to merge back in to the database
        options - the options to apply
        Returns:
        the new merged entity. NOTE: this is a database fetch.
        Since:
        2.0
      • merge

        @Deprecated(since="2.0",
                    forRemoval=true)
        <T> void merge​(T entity,
                       com.mongodb.WriteConcern wc)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Work as if you did an update with each field in the entity doing a $set; Only at the top level of the entity.
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity to merge back in to the database
        wc - the WriteConcern to use
      • queryByExample

        <T> Query<T> queryByExample​(T example)
        Returns a new query based on the example object
        Type Parameters:
        T - the type of the entity
        Parameters:
        example - the example entity to use when creating the query
        Returns:
        the query
      • save

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> void save​(Iterable<T> entities)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Saves the entities (Objects) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entities - the entities to save
      • save

        default <T> List<T> save​(List<T> entities)
        Saves the entities (Objects) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entities - the entities to save
        Returns:
        the saved entities
      • save

        <T> List<T> save​(List<T> entities,
                         InsertManyOptions options)
        Saves the entities (Objects) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entities - the entities to save
        options - the options to apply to the save operation
        Returns:
        the saved entities
        Since:
        2.0
      • save

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> List<T> save​(Iterable<T> entities,
                                 InsertOptions options)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Saves the entities (Objects) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entities - the entities to save
        options - the options to apply to the save operation
        Returns:
        the saved entities
      • save

        <T> T save​(T entity)
        Saves an entity (Object) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity to save
        Returns:
        the saved entity
      • save

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> T save​(T entity,
                           InsertOptions options)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use #save(T, InsertOneOptions) instead
        Saves an entity (Object) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity to save
        options - the options to apply to the save operation
        Returns:
        the saved entity
      • save

        <T> T save​(T entity,
                   InsertOneOptions options)
        Saves an entity (Object) and updates the @Id field
        Type Parameters:
        T - the type of the entity
        Parameters:
        entity - the entity to save
        options - the options to apply to the save operation
        Returns:
        the saved entity
      • startSession

        MorphiaSession startSession()
        Starts a new session on the server.
        Returns:
        the new session reference
        Since:
        2.0
        Developer note.
        This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.
      • startSession

        MorphiaSession startSession​(com.mongodb.ClientSessionOptions options)
        Starts a new session on the server.
        Parameters:
        options - the options to apply
        Returns:
        the new session reference
        Since:
        2.0
        Developer note.
        This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.
      • update

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> com.mongodb.client.result.UpdateResult update​(Query<T> query,
                                                                  UpdateOperations<T> operations)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use Query.update() instead. Please note the default has changed from multi- to single- document updates.
        Updates all entities found with the operations; this is an atomic operation per entity
        Type Parameters:
        T - the type of the entity
        Parameters:
        query - the query used to match the documents to update
        operations - the update operations to perform
        Returns:
        the results of the updates
      • update

        @Deprecated(since="2.0",
                    forRemoval=true)
        default <T> com.mongodb.client.result.UpdateResult update​(Query<T> query,
                                                                  UpdateOperations<T> operations,
                                                                  UpdateOptions options)
        Deprecated, for removal: This API element is subject to removal in a future version.
        use Query.update() instead
        Updates all entities found with the operations; this is an atomic operation per entity
        Type Parameters:
        T - the type of the entity
        Parameters:
        query - the query used to match the documents to update
        operations - the update operations to perform
        options - the options to apply to the update
        Returns:
        the results of the updates
        Since:
        1.3
      • withTransaction

        <T> T withTransaction​(MorphiaTransaction<T> transaction)
        Type Parameters:
        T - the return type
        Parameters:
        transaction - the transaction wrapper
        Returns:
        the return value
        Since:
        2.0
        Developer note.
        This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.
      • withTransaction

        <T> T withTransaction​(com.mongodb.ClientSessionOptions options,
                              MorphiaTransaction<T> transaction)
        Type Parameters:
        T - the return type
        Parameters:
        options - the session options to apply
        transaction - the transaction wrapper
        Returns:
        the return value
        Since:
        2.0
        Developer note.
        This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.