public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements JobInstanceDao, org.springframework.beans.factory.InitializingBean
JobInstanceDao
. Uses sequences (via Spring's
DataFieldMaxValueIncrementer
abstraction) to create all primary keys
before inserting a new row. Objects are checked to ensure all mandatory
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.DEFAULT_EXIT_MESSAGE_LENGTH, DEFAULT_TABLE_PREFIX
Constructor and Description |
---|
JdbcJobInstanceDao() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
JobInstance |
createJobInstance(java.lang.String jobName,
JobParameters jobParameters)
In this JDBC implementation a job id is obtained by asking the
jobIncrementer (which is likely a sequence) for the next long value, and
then passing the Id and parameter values into an INSERT statement.
|
java.util.List<JobInstance> |
findJobInstancesByName(java.lang.String jobName,
int start,
int count)
Fetch the last job instances with the provided name, sorted backwards by
primary key, using a 'like' criteria
|
JobInstance |
getJobInstance(JobExecution jobExecution)
Fetch the JobInstance for the provided JobExecution.
|
JobInstance |
getJobInstance(java.lang.Long instanceId)
Fetch the job instance with the provided identifier.
|
JobInstance |
getJobInstance(java.lang.String jobName,
JobParameters jobParameters)
The job table is queried for any jobs that match the
given identifier, adding them to a list via the RowMapper callback.
|
int |
getJobInstanceCount(java.lang.String jobName)
Query the repository for the number of unique
JobInstance s
associated with the supplied job name. |
java.util.List<JobInstance> |
getJobInstances(java.lang.String jobName,
int start,
int count)
Fetch the last job instances with the provided name, sorted backwards by
primary key.
|
java.util.List<java.lang.String> |
getJobNames()
Retrieve the names of all job instances sorted alphabetically - i.e.
|
JobInstance |
getLastJobInstance(java.lang.String jobName)
Fetch the last job instance by Id for the given job.
|
void |
setJobIncrementer(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer jobIncrementer)
Setter for
DataFieldMaxValueIncrementer to be used when
generating primary keys for JobInstance instances. |
getClobTypeToUse, getJdbcTemplate, getQuery, getTablePrefix, setClobTypeToUse, setJdbcTemplate, setTablePrefix
public JobInstance createJobInstance(java.lang.String jobName, JobParameters jobParameters)
createJobInstance
in interface JobInstanceDao
jobName
- String
containing the name of the job.jobParameters
- JobParameters
containing the parameters for
the JobInstance.JobInstance
instance that was created.java.lang.IllegalArgumentException
- if any JobParameters
fields are null.JobInstanceDao.createJobInstance(String, JobParameters)
@Nullable public JobInstance getJobInstance(java.lang.String jobName, JobParameters jobParameters)
getJobInstance
in interface JobInstanceDao
jobName
- the name of the jobjobParameters
- the parameters with which the job was executedJobInstance
object matching the job name and
JobParameters
or null
java.lang.IllegalArgumentException
- if any JobParameters
fields are null.JobInstanceDao.getJobInstance(String, JobParameters)
@Nullable public JobInstance getJobInstance(@Nullable java.lang.Long instanceId)
JobInstanceDao
getJobInstance
in interface JobInstanceDao
instanceId
- the job identifiernull
if it doesn't existpublic java.util.List<java.lang.String> getJobNames()
JobInstanceDao
getJobNames
in interface JobInstanceDao
public java.util.List<JobInstance> getJobInstances(java.lang.String jobName, int start, int count)
JobInstanceDao
getJobInstances
in interface JobInstanceDao
jobName
- the job namestart
- the start index of the instances to returncount
- the maximum number of objects to return@Nullable public JobInstance getLastJobInstance(java.lang.String jobName)
JobInstanceDao
getLastJobInstance
in interface JobInstanceDao
jobName
- name of the job@Nullable public JobInstance getJobInstance(JobExecution jobExecution)
JobInstanceDao
getJobInstance
in interface JobInstanceDao
jobExecution
- the JobExecutionnull
if it doesn't exist.public int getJobInstanceCount(@Nullable java.lang.String jobName) throws NoSuchJobException
JobInstanceDao
JobInstance
s
associated with the supplied job name.getJobInstanceCount
in interface JobInstanceDao
jobName
- the name of the job to query forJobInstance
s that exist within the
associated job repositoryNoSuchJobException
- thrown if no Job has the jobName specified.public void setJobIncrementer(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer jobIncrementer)
DataFieldMaxValueIncrementer
to be used when
generating primary keys for JobInstance
instances.jobIncrementer
- the DataFieldMaxValueIncrementer
public void afterPropertiesSet() throws java.lang.Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
in class AbstractJdbcBatchMetadataDao
java.lang.Exception
public java.util.List<JobInstance> findJobInstancesByName(java.lang.String jobName, int start, int count)
JobInstanceDao
findJobInstancesByName
in interface JobInstanceDao
jobName
- String
containing the name of the job.start
- int containing the offset of where list of job instances
results should begin.count
- int containing the number of job instances to return.JobInstance
for the job name requested.