org.springframework.batch.core.repository.dao

## Interface JobInstanceDao

- All Known Implementing Classes:
    JdbcJobInstanceDao, MapJobInstanceDao

      public interface JobInstanceDao

  Data Access Object for job instances.
  Author:
    Lucas Ward, Robert Kasanicky, Michael Minella, Mahmoud Ben Hassine

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `JobInstance` | `createJobInstance(java.lang.String jobName, JobParameters jobParameters)` Create a JobInstance with given name and parameters.
    `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)` Find the job instance that matches the given name and parameters.
    `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.
    `default JobInstance` | `getLastJobInstance(java.lang.String jobName)` Fetch the last job instance by Id for the given job.

- - ### Method Detail

    - #### createJobInstance

          JobInstance createJobInstance(java.lang.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(java.lang.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
                                               java.lang.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

          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. 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(java.lang.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

          java.util.List<java.lang.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

          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
      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
                                  java.lang.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.