Class JdbcJobInstanceDao

  • All Implemented Interfaces:
    JobInstanceDao, org.springframework.beans.factory.InitializingBean

    public class JdbcJobInstanceDao
    extends AbstractJdbcBatchMetadataDao
    implements JobInstanceDao, org.springframework.beans.factory.InitializingBean
    JDBC implementation of 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.
    Author:
    Lucas Ward, Dave Syer, Robert Kasanicky, Michael Minella, Will Schipp, Mahmoud Ben Hassine
    • Constructor Detail

      • JdbcJobInstanceDao

        public JdbcJobInstanceDao()
    • Method Detail

      • getJobInstance

        @Nullable
        public JobInstance getJobInstance​(@Nullable
                                          java.lang.Long instanceId)
        Description copied from interface: JobInstanceDao
        Fetch the job instance with the provided identifier.
        Specified by:
        getJobInstance in interface JobInstanceDao
        Parameters:
        instanceId - the job identifier
        Returns:
        the job instance with this identifier or null if it doesn't exist
      • getJobNames

        public java.util.List<java.lang.String> getJobNames()
        Description copied from interface: JobInstanceDao
        Retrieve the names of all job instances sorted alphabetically - i.e. jobs that have ever been executed.
        Specified by:
        getJobNames in interface JobInstanceDao
        Returns:
        the names of all job instances
      • getJobInstances

        public java.util.List<JobInstance> getJobInstances​(java.lang.String jobName,
                                                           int start,
                                                           int count)
        Description copied from interface: JobInstanceDao
        Fetch the last job instances with the provided name, sorted backwards by primary key. if using the JdbcJobInstance, you can provide the jobName with a wildcard (e.g. *Job) to return 'like' job names. (e.g. *Job will return 'someJob' and 'otherJob')
        Specified by:
        getJobInstances in interface JobInstanceDao
        Parameters:
        jobName - the job name
        start - the start index of the instances to return
        count - the maximum number of objects to return
        Returns:
        the job instances with this name or empty if none
      • getJobInstance

        @Nullable
        public JobInstance getJobInstance​(JobExecution jobExecution)
        Description copied from interface: JobInstanceDao
        Fetch the JobInstance for the provided JobExecution.
        Specified by:
        getJobInstance in interface JobInstanceDao
        Parameters:
        jobExecution - the JobExecution
        Returns:
        the JobInstance for the provided execution or null if it doesn't exist.
      • getJobInstanceCount

        public int getJobInstanceCount​(@Nullable
                                       java.lang.String jobName)
                                throws NoSuchJobException
        Description copied from interface: JobInstanceDao
        Query the repository for the number of unique JobInstances associated with the supplied job name.
        Specified by:
        getJobInstanceCount in interface JobInstanceDao
        Parameters:
        jobName - the name of the job to query for
        Returns:
        the number of JobInstances that exist within the associated job repository
        Throws:
        NoSuchJobException - thrown if no Job has the jobName specified.
      • setJobIncrementer

        public void setJobIncrementer​(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer jobIncrementer)
        Setter for DataFieldMaxValueIncrementer to be used when generating primary keys for JobInstance instances.
        Parameters:
        jobIncrementer - the DataFieldMaxValueIncrementer
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Overrides:
        afterPropertiesSet in class AbstractJdbcBatchMetadataDao
        Throws:
        java.lang.Exception
      • findJobInstancesByName

        public java.util.List<JobInstance> findJobInstancesByName​(java.lang.String jobName,
                                                                  int start,
                                                                  int count)
        Description copied from interface: JobInstanceDao
        Fetch the last job instances with the provided name, sorted backwards by primary key, using a 'like' criteria
        Specified by:
        findJobInstancesByName in interface JobInstanceDao
        Parameters:
        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.
        Returns:
        a list of JobInstance for the job name requested.