Class RepositoryItemWriter<T>
java.lang.Object
org.springframework.batch.item.data.RepositoryItemWriter<T>
- All Implemented Interfaces:
ItemWriter<T>
,org.springframework.beans.factory.InitializingBean
public class RepositoryItemWriter<T>
extends Object
implements ItemWriter<T>, org.springframework.beans.factory.InitializingBean
A ItemWriter
wrapper for a
CrudRepository
from Spring Data.
By default, this writer will use CrudRepository.saveAll(Iterable)
to save
items, unless another method is selected with setMethodName(java.lang.String)
.
It depends on
CrudRepository.saveAll(Iterable)
method to
store the items for the chunk. Performance will be determined by that implementation
more than this writer.
As long as the repository provided is thread-safe, this writer is also thread-safe once properties are set (normal singleton behavior), so it can be used in multiple concurrent transactions.
NOTE: The RepositoryItemWriter
only stores Java Objects i.e. non primitives.
- Since:
- 2.2
- Author:
- Michael Minella, Mahmoud Ben Hassine
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Check mandatory properties - there must be a repository.protected void
Performs the actual write to the repository.void
setMethodName
(String methodName) Specifies what method on the repository to call.void
setRepository
(org.springframework.data.repository.CrudRepository<T, ?> repository) Set theCrudRepository
implementation for persistencevoid
Write all items to the data store via a Spring Data repository.
-
Field Details
-
logger
protected static final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
RepositoryItemWriter
public RepositoryItemWriter()
-
-
Method Details
-
setMethodName
Specifies what method on the repository to call. This method must have the type of object passed to this writer as the sole argument.- Parameters:
methodName
-String
containing the method name.
-
setRepository
Set theCrudRepository
implementation for persistence- Parameters:
repository
- the Spring Data repository to be set
-
write
Write all items to the data store via a Spring Data repository.- Specified by:
write
in interfaceItemWriter<T>
- Parameters:
chunk
- of items to be written. Must not benull
.- Throws:
Exception
- if there are errors. The framework will catch the exception and convert or rethrow it as appropriate.- See Also:
-
doWrite
Performs the actual write to the repository. This can be overridden by a subclass if necessary.- Parameters:
items
- the list of items to be persisted.- Throws:
Exception
- thrown if error occurs during writing.
-
afterPropertiesSet
Check mandatory properties - there must be a repository.- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-