Package dev.morphia

Interface Datastore

All Known Subinterfaces:
MorphiaSession

public interface Datastore
Datastore interface to get/delete/save objects
  • Method Details

    • aggregate

      Aggregation<Document> aggregate(String source)
      Returns a new query bound to the kind (a specific MongoCollection)
      Parameters:
      source - The collection aggregation against
      Returns:
      the aggregation pipeline
      Since:
      2.0
    • aggregate

      <T> Aggregation<T> aggregate(Class<T> source)
      Returns a new query bound to the kind (a specific MongoCollection)
      Type Parameters:
      T - the source type
      Parameters:
      source - The class to create aggregation against
      Returns:
      the aggregation pipeline
      Since:
      2.0
    • delete

      <T> 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> 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
    • find

      <T> Query<T> find(Class<T> type)
      Find instances of a type
      Type Parameters:
      T - the type to query
      Parameters:
      type - the class to use for mapping the results
      Returns:
      the query
    • find

      @MorphiaExperimental <T> Query<T> find(Class<T> type, Document nativeQuery)
      Find instances of a type using a native query. This method is intended as an aid when copying queries from external sources such as the shell or Compass whose structure is already in json form.
      Type Parameters:
      T - the type to query
      Parameters:
      type - the class to use for mapping the results
      nativeQuery - the full query structure to use for this Query
      Returns:
      the query
      Since:
      2.3
      Developer note.
      This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.
    • insert

      default <T> void insert(T entity)
      Inserts an entity in to the mapped collection.
      Type Parameters:
      T - the type of the entity
      Parameters:
      entity - the entity to insert
    • insert

      <T> void insert(T entity, InsertOneOptions options)
      Inserts an entity in to the mapped collection.
      Type Parameters:
      T - the type of the entity
      Parameters:
      entity - the entity to insert
      options - the options to apply to the insert operation
      Since:
      2.0
    • insert

      default <T> void insert(List<T> entities)
      Inserts a List of entities in to the mapped collection.
      Type Parameters:
      T - the type of the entity
      Parameters:
      entities - the entities to insert
      Since:
      2.0
    • insert

      <T> void insert(List<T> entities, InsertManyOptions options)
      Inserts entities in to the mapped collection.
      Type Parameters:
      T - the type of the entity
      Parameters:
      entities - the entities to insert
      options - the options to apply to the insert operation
      Since:
      2.0
    • 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
    • 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
    • refresh

      <T> void refresh(T entity)
      Refreshes an existing entity to its current state in the database. Essentially, any existing mapped state is replaced by the latest persisted state while preserving the entity's reference and object identity.
      Type Parameters:
      T - the entity type
      Parameters:
      entity - the entity to refresh
      Since:
      2.0
    • replace

      default <T> T replace(T entity)
      Replaces a document in the database
      Type Parameters:
      T - the type of the entity
      Parameters:
      entity - the entity to replace
      Returns:
      the replaced entity
      Since:
      2.3
    • replace

      <T> T replace(T entity, ReplaceOptions options)
      Replaces a document in the database
      Type Parameters:
      T - the type of the entity
      Parameters:
      entity - the entity to replace
      options - the options to apply to the replace operation
      Returns:
      the replaced entity
      Since:
      2.3
    • replace

      default <T> List<T> replace(List<T> entities)
      Replaces a list of documents in the database
      Type Parameters:
      T - the type of the entity
      Parameters:
      entities - the entities to replace
      Returns:
      the saved entities
      Since:
      2.3
    • replace

      <T> List<T> replace(List<T> entities, ReplaceOptions options)
      Replaces a list of documents in the database
      Type Parameters:
      T - the type of the entity
      Parameters:
      entities - the entities to replace
      options - the options to apply to the replace operation
      Returns:
      the saved entities
      Since:
      2.3
    • 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

      default <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

      <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
    • startSession

      MorphiaSession startSession(ClientSessionOptions options)
      Starts a new session on the server.
      Parameters:
      options - the options to apply
      Returns:
      the new session reference
      Since:
      2.0
    • withTransaction

      @Nullable <T> T withTransaction(MorphiaTransaction<T> transaction)
      Type Parameters:
      T - the return type
      Parameters:
      transaction - the transaction wrapper
      Returns:
      the return value
      Since:
      2.0
    • withTransaction

      @Nullable <T> T withTransaction(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