Class MongoItemWriter<T>

java.lang.Object
org.springframework.batch.item.data.MongoItemWriter<T>
All Implemented Interfaces:
ItemWriter<T>, org.springframework.beans.factory.InitializingBean

public class MongoItemWriter<T> extends Object implements ItemWriter<T>, org.springframework.beans.factory.InitializingBean

A ItemWriter implementation that writes to a MongoDB store using an implementation of Spring Data's MongoOperations. Since MongoDB is not a transactional store, a best effort is made to persist written data at the last moment, yet still honor job status contracts. No attempt to roll back is made if an error occurs during writing.

This writer is thread-safe once all properties are set (normal singleton behavior) so it can be used in multiple concurrent transactions.

Author:
Michael Minella, Parikshit Dutta, Mahmoud Ben Hassine
  • Constructor Details

    • MongoItemWriter

      public MongoItemWriter()
  • Method Details

    • setDelete

      @Deprecated(since="5.1", forRemoval=true) public void setDelete(boolean delete)
      Deprecated, for removal: This API element is subject to removal in a future version.
      use setMode(Mode) instead. Scheduled for removal in v5.3 or later.
      Indicates if the items being passed to the writer are to be saved or removed from the data store. If set to false (default), the items will be saved or update using MongoItemWriter.Mode.UPSERT. If set to true, then items will be removed.
      Parameters:
      delete - removal indicator
    • setMode

      public void setMode(MongoItemWriter.Mode mode)
      Set the operating MongoItemWriter.Mode to be applied by this writer. Defaults to MongoItemWriter.Mode.UPSERT.
      Parameters:
      mode - the mode to be used.
      Since:
      5.1
    • getMode

      public MongoItemWriter.Mode getMode()
      Get the operating MongoItemWriter.Mode of the item writer.
      Returns:
      the operating mode
      Since:
      5.1
    • setTemplate

      public void setTemplate(org.springframework.data.mongodb.core.MongoOperations template)
      Set the MongoOperations to be used to save items to be written.
      Parameters:
      template - the template implementation to be used.
    • getTemplate

      protected org.springframework.data.mongodb.core.MongoOperations getTemplate()
      Get the MongoOperations to be used to save items to be written. This can be called by a subclass if necessary.
      Returns:
      template the template implementation to be used.
    • setCollection

      public void setCollection(String collection)
      Set the name of the Mongo collection to be written to.
      Parameters:
      collection - the name of the collection.
    • getCollection

      public String getCollection()
      Get the Mongo collection name.
      Returns:
      the collection name
      Since:
      5.1
    • write

      public void write(Chunk<? extends T> chunk) throws Exception
      If a transaction is active, buffer items to be written just before commit. Otherwise write items using the provided template.
      Specified by:
      write in interface ItemWriter<T>
      Parameters:
      chunk - of items to be written. Must not be null.
      Throws:
      Exception - if there are errors. The framework will catch the exception and convert or rethrow it as appropriate.
      See Also:
    • doWrite

      protected void doWrite(Chunk<? extends T> chunk)
      Performs the actual write to the store via the template. This can be overridden by a subclass if necessary.
      Parameters:
      chunk - the chunk of items to be persisted.
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception