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 java.lang.Object implements ItemWriter<T>, org.springframework.beans.factory.InitializingBean
A
ItemWriter
implementation that writes to a MongoDB store using an implementation of Spring Data'sMongoOperations
. 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
Constructor Summary
Constructors Constructor Description MongoItemWriter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
protected void
doWrite(java.util.List<? extends T> items)
Performs the actual write to the store via the template.protected org.springframework.data.mongodb.core.MongoOperations
getTemplate()
Get theMongoOperations
to be used to save items to be written.void
setCollection(java.lang.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 theMongoOperations
to be used to save items to be written.void
write(java.util.List<? extends T> items)
If a transaction is active, buffer items to be written just before commit.
Method Detail
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 theMongoOperations
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 theMongoOperations
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(java.lang.String collection)
Set the name of the Mongo collection to be written to.- Parameters:
collection
- the name of the collection.
write
public void write(java.util.List<? extends T> items) throws java.lang.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 interfaceItemWriter<T>
- Parameters:
items
- items to be written- Throws:
java.lang.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(java.util.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 java.lang.Exception
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
java.lang.Exception