Package org.springframework.batch.item.data

# 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 Summary

  Constructors
  Constructor
  Description
  `MongoItemWriter()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  `protected void`
  `doWrite(List<? extends T> items)`
  Performs the actual write to the store via the template.
  `protected org.springframework.data.mongodb.core.MongoOperations`
  `getTemplate()`
  Get the `MongoOperations` to be used to save items to be written.
  `void`
  `setCollection(String collection)`
  Set the name of the Mongo collection to be written to.
  `void`
  `setDelete(boolean delete)`
  Indicates if the items being passed to the writer are to be saved or removed from the data store.
  `void`
  `setTemplate(org.springframework.data.mongodb.core.MongoOperations template)`
  Set the `MongoOperations` to be used to save items to be written.
  `void`
  `write(List<? extends T> items)`
  If a transaction is active, buffer items to be written just before commit.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MongoItemWriter

    public MongoItemWriter()

- ## Method Details

  - ### setDelete

    public void setDelete(boolean delete)
    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. If set to true, the items will be removed.
    Parameters:
      `delete` - removal indicator

  - ### 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.

  - ### write

    public void write(List<? extends T> items) 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:
      `items` - items to be written
    Throws:
      `Exception` - if there are errors. The framework will catch the exception and convert or rethrow it as appropriate.
    See Also:
      - `ItemWriter.write(List)`

  - ### doWrite

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

  - ### afterPropertiesSet

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