Class JdbcStepExecutionDao
- java.lang.Object
- org.springframework.batch.core.repository.dao.AbstractJdbcBatchMetadataDao
- org.springframework.batch.core.repository.dao.JdbcStepExecutionDao
- All Implemented Interfaces:
StepExecutionDao
,org.springframework.beans.factory.InitializingBean
public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implements StepExecutionDao, org.springframework.beans.factory.InitializingBean
JDBC implementation ofStepExecutionDao
.
Allows customization of the tables names used by Spring Batch for step meta data via a prefix property.
Uses sequences or tables (via Spring'sDataFieldMaxValueIncrementer
abstraction) to create all primary keys before inserting a new row. All objects are checked to ensure all fields to be stored are not null. If any are found to be null, an IllegalArgumentException will be thrown. This could be left to JdbcTemplate, however, the exception will be fairly vague, and fails to highlight which field caused the exception.- Author:
- Lucas Ward, Dave Syer, Robert Kasanicky, David Turanski, Mahmoud Ben Hassine
- See Also:
StepExecutionDao
Field Summary
Fields inherited from class org.springframework.batch.core.repository.dao.AbstractJdbcBatchMetadataDao
DEFAULT_EXIT_MESSAGE_LENGTH, DEFAULT_TABLE_PREFIX
Constructor Summary
Constructors Constructor Description JdbcStepExecutionDao()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addStepExecutions(JobExecution jobExecution)
Retrieve all theStepExecution
for the parentJobExecution
.void
afterPropertiesSet()
StepExecution
getStepExecution(JobExecution jobExecution, java.lang.Long stepExecutionId)
Retrieve aStepExecution
from its id.void
saveStepExecution(StepExecution stepExecution)
Save a StepExecution.void
saveStepExecutions(java.util.Collection<StepExecution> stepExecutions)
Batch insert StepExecutionsvoid
setExitMessageLength(int exitMessageLength)
Public setter for the exit message length in database.void
setStepExecutionIncrementer(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer stepExecutionIncrementer)
void
updateStepExecution(StepExecution stepExecution)
Update the given StepExecution Preconditions: Id must not be null.Methods inherited from class org.springframework.batch.core.repository.dao.AbstractJdbcBatchMetadataDao
getClobTypeToUse, getJdbcTemplate, getQuery, getTablePrefix, setClobTypeToUse, setJdbcTemplate, setTablePrefix
Method Detail
setExitMessageLength
public void setExitMessageLength(int exitMessageLength)
Public setter for the exit message length in database. Do not set this if you haven't modified the schema.- Parameters:
exitMessageLength
- the exitMessageLength to set
setStepExecutionIncrementer
public void setStepExecutionIncrementer(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer stepExecutionIncrementer)
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.Exception
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Overrides:
afterPropertiesSet
in classAbstractJdbcBatchMetadataDao
- Throws:
java.lang.Exception
saveStepExecution
public void saveStepExecution(StepExecution stepExecution)
Save a StepExecution. A unique id will be generated by the stepExecutionIncrementer, and then set in the StepExecution. All values will then be stored via an INSERT statement.- Specified by:
saveStepExecution
in interfaceStepExecutionDao
- Parameters:
stepExecution
-StepExecution
instance to be saved.- See Also:
StepExecutionDao.saveStepExecution(StepExecution)
saveStepExecutions
public void saveStepExecutions(java.util.Collection<StepExecution> stepExecutions)
Batch insert StepExecutions- Specified by:
saveStepExecutions
in interfaceStepExecutionDao
- Parameters:
stepExecutions
- a collection ofJobExecution
instances to be saved.- See Also:
StepExecutionDao.saveStepExecutions(Collection)
updateStepExecution
public void updateStepExecution(StepExecution stepExecution)
Description copied from interface:StepExecutionDao
Update the given StepExecution Preconditions: Id must not be null.- Specified by:
updateStepExecution
in interfaceStepExecutionDao
- Parameters:
stepExecution
-StepExecution
instance to be updated.
getStepExecution
@Nullable public StepExecution getStepExecution(JobExecution jobExecution, java.lang.Long stepExecutionId)
Description copied from interface:StepExecutionDao
Retrieve aStepExecution
from its id.- Specified by:
getStepExecution
in interfaceStepExecutionDao
- Parameters:
jobExecution
- the parentJobExecution
stepExecutionId
- the step execution id- Returns:
- a
StepExecution
addStepExecutions
public void addStepExecutions(JobExecution jobExecution)
Description copied from interface:StepExecutionDao
Retrieve all theStepExecution
for the parentJobExecution
.- Specified by:
addStepExecutions
in interfaceStepExecutionDao
- Parameters:
jobExecution
- the parent job execution