org.springframework.batch.core.repository.dao

## Interface JobExecutionDao

- All Known Implementing Classes:
    JdbcJobExecutionDao, MapJobExecutionDao

      public interface JobExecutionDao

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

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<JobExecution>` | `findJobExecutions(JobInstance jobInstance)` Return all `JobExecution`s for given `JobInstance`, sorted backwards by creation order (so the first element is the most recent).
    `java.util.Set<JobExecution>` | `findRunningJobExecutions(java.lang.String jobName)`
    `JobExecution` | `getJobExecution(java.lang.Long executionId)`
    `JobExecution` | `getLastJobExecution(JobInstance jobInstance)` Find the last `JobExecution` to have been created for a given `JobInstance`.
    `void` | `saveJobExecution(JobExecution jobExecution)` Save a new JobExecution.
    `void` | `synchronizeStatus(JobExecution jobExecution)` Because it may be possible that the status of a JobExecution is updated while running, the following method will synchronize only the status and version fields.
    `void` | `updateJobExecution(JobExecution jobExecution)` Update and existing JobExecution.

- - ### Method Detail

    - #### saveJobExecution

          void saveJobExecution(JobExecution jobExecution)

      Save a new JobExecution. Preconditions: jobInstance the jobExecution belongs to must have a jobInstanceId.
      Parameters:
        `jobExecution` - `JobExecution` instance to be saved.

    - #### updateJobExecution

          void updateJobExecution(JobExecution jobExecution)

      Update and existing JobExecution. Preconditions: jobExecution must have an Id (which can be obtained by the save method) and a jobInstanceId.
      Parameters:
        `jobExecution` - `JobExecution` instance to be updated.

    - #### findJobExecutions

          java.util.List<JobExecution> findJobExecutions(JobInstance jobInstance)

      Return all `JobExecution`s for given `JobInstance`, sorted backwards by creation order (so the first element is the most recent).
      Parameters:
        `jobInstance` - parent `JobInstance` of the `JobExecution`s to find.
      Returns:
        `List` containing JobExecutions for the jobInstance.

    - #### getLastJobExecution

          @Nullable
          JobExecution getLastJobExecution(JobInstance jobInstance)

      Find the last `JobExecution` to have been created for a given `JobInstance`.
      Parameters:
        `jobInstance` - the `JobInstance`
      Returns:
        the last `JobExecution` to execute for this instance or `null` if no job execution is found for the given job instance.

    - #### findRunningJobExecutions

          java.util.Set<JobExecution> findRunningJobExecutions(java.lang.String jobName)

      Parameters:
        `jobName` - `String` containing the name of the job.
      Returns:
        all `JobExecution` that are still running (or indeterminate state), i.e. having null end date, for the specified job name.

    - #### getJobExecution

          @Nullable
          JobExecution getJobExecution(java.lang.Long executionId)

      Parameters:
        `executionId` - `Long` containing the id of the execution.
      Returns:
        the `JobExecution` for given identifier.

    - #### synchronizeStatus

          void synchronizeStatus(JobExecution jobExecution)

      Because it may be possible that the status of a JobExecution is updated while running, the following method will synchronize only the status and version fields.
      Parameters:
        `jobExecution` - to be updated.