If you try rerunning your Spring Batch application from Part 3 blogpost, you will see that you are not able to do it. Why? Spring Batch utilizes the Job Repositories table and knows that the job has run already. You have a Corporate Gift Shop., you want to continuously run the batch job so it picks up the orders placed and packages them and ships them. How do you rerun job? The answer is simple, create different Jobs each time you want to run them by passing Job Parameters. You can find the entire code at: https://github.com/ricsr/spring-batch-demo/tree/exercise_04 In intellij this is how I do, by editing run time parameters: Rerun, and you should be able to see the output. Check the db tables, and you should see new entries. Its very important that you are able to read the Job Parameters as they may have some important information you want to use while running your Job or Logging purpose. If you want to package your gifts in a specific gift wrapper, you could specify like this: @B