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 java.lang.Object implements ItemWriter<T>, org.springframework.beans.factory.InitializingBean
A
ItemReaderwrapper for aCrudRepositoryfrom Spring Data.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
RepositoryItemWriteronly stores Java Objects i.e. non primitives.- Since:
- 2.2
- Author:
- Michael Minella, Mahmoud Ben Hassine
Field Summary
Fields Modifier and Type Field Description protected static org.apache.commons.logging.Loglogger
Constructor Summary
Constructors Constructor Description RepositoryItemWriter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()Check mandatory properties - there must be a repository.protected voiddoWrite(java.util.List<? extends T> items)Performs the actual write to the repository.voidsetMethodName(java.lang.String methodName)Specifies what method on the repository to call.voidsetRepository(org.springframework.data.repository.CrudRepository<T,?> repository)Set theCrudRepositoryimplementation for persistencevoidwrite(java.util.List<? extends T> items)Write all items to the data store via a Spring Data repository.
Method Detail
setMethodName
public void setMethodName(java.lang.String methodName)
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-Stringcontaining the method name.
setRepository
public void setRepository(org.springframework.data.repository.CrudRepository<T,?> repository)
Set theCrudRepositoryimplementation for persistence- Parameters:
repository- the Spring Data repository to be set
write
public void write(java.util.List<? extends T> items) throws java.lang.Exception
Write all items to the data store via a Spring Data repository.- Specified by:
writein 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(java.util.List)
doWrite
protected void doWrite(java.util.List<? extends T> items) throws java.lang.Exception
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:
java.lang.Exception- thrown if error occurs during writing.
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.ExceptionCheck mandatory properties - there must be a repository.- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
java.lang.Exception