Package org.springframework.batch.core.repository.dao

# Interface JobInstanceDao

All Known Implementing Classes:
  `JdbcJobInstanceDao`

public interface JobInstanceDao
Data Access Object for job instances.

Author:
  Lucas Ward, Robert Kasanicky, Michael Minella, Mahmoud Ben Hassine

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JobInstance`
  `createJobInstance(String jobName, JobParameters jobParameters)`
  Create a JobInstance with given name and parameters.
  `List<JobInstance>`
  `findJobInstancesByName(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(Long instanceId)`
  Fetch the job instance with the provided identifier.
  `JobInstance`
  `getJobInstance(String jobName, JobParameters jobParameters)`
  Find the job instance that matches the given name and parameters.
  `JobInstance`
  `getJobInstance(JobExecution jobExecution)`
  Fetch the JobInstance for the provided JobExecution.
  `int`
  `getJobInstanceCount(String jobName)`
  Query the repository for the number of unique `JobInstance`s associated with the supplied job name.
  `List<JobInstance>`
  `getJobInstances(String jobName, int start, int count)`
  Fetch the last job instances with the provided name, sorted backwards by primary key.
  `List<String>`
  `getJobNames()`
  Retrieve the names of all job instances sorted alphabetically - i.e.
  `default JobInstance`
  `getLastJobInstance(String jobName)`
  Fetch the last job instance by Id for the given job.

- ## Method Details

  - ### createJobInstance

    JobInstance createJobInstance(String jobName, JobParameters jobParameters)
    Create a JobInstance with given name and parameters. PreConditions: JobInstance for given name and parameters must not already exist PostConditions: A valid job instance will be returned which has been persisted and contains an unique Id.
    Parameters:
      `jobName` - `String` containing the name of the job.
      `jobParameters` - `JobParameters` containing the parameters for the JobInstance.
    Returns:
      JobInstance `JobInstance` instance that was created.

  - ### getJobInstance

    @Nullable JobInstance getJobInstance(String jobName, JobParameters jobParameters)
    Find the job instance that matches the given name and parameters. If no matching job instances are found, then returns null.
    Parameters:
      `jobName` - the name of the job
      `jobParameters` - the parameters with which the job was executed
    Returns:
      `JobInstance` object matching the job name and `JobParameters` or `null`

  - ### getJobInstance

    @Nullable JobInstance getJobInstance(@Nullable Long instanceId)
    Fetch the job instance with the provided identifier.
    Parameters:
      `instanceId` - the job identifier
    Returns:
      the job instance with this identifier or `null` if it doesn't exist

  - ### getJobInstance

    @Nullable JobInstance getJobInstance(JobExecution jobExecution)
    Fetch the JobInstance for the provided JobExecution.
    Parameters:
      `jobExecution` - the JobExecution
    Returns:
      the JobInstance for the provided execution or `null` if it doesn't exist.

  - ### getJobInstances

    List<JobInstance> getJobInstances(String jobName, int start, int count)
    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')
    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

  - ### getLastJobInstance

    @Nullable default JobInstance getLastJobInstance(String jobName)
    Fetch the last job instance by Id for the given job.
    Parameters:
      `jobName` - name of the job
    Returns:
      the last job instance by Id if any or null otherwise
    Since:
      4.2

  - ### getJobNames

    List<String> getJobNames()
    Retrieve the names of all job instances sorted alphabetically - i.e. jobs that have ever been executed.
    Returns:
      the names of all job instances

  - ### findJobInstancesByName

    List<JobInstance> findJobInstancesByName(String jobName, int start, int count)
    Fetch the last job instances with the provided name, sorted backwards by primary key, using a 'like' criteria
    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.

  - ### getJobInstanceCount

    int getJobInstanceCount(@Nullable String jobName) throws NoSuchJobException
    Query the repository for the number of unique `JobInstance`s associated with the supplied job name.
    Parameters:
      `jobName` - the name of the job to query for
    Returns:
      the number of `JobInstance`s that exist within the associated job repository
    Throws:
      `NoSuchJobException` - thrown if no Job has the jobName specified.