diff --git a/api/pom.xml b/api/pom.xml
index 7772c9ab..74e6d433 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -6,7 +6,7 @@
ca.bc.gov.educ
educ-grad-batch-graduation-api
- 1.8.54
+ 1.8.55
educ-grad-batch-graduation-api
Ministry of Education GRAD BATCH GRADUATION API
diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobLauncher.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobLauncher.java
index c2789099..8c7ec12f 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobLauncher.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobLauncher.java
@@ -146,4 +146,17 @@ public void refreshUserScheduledQueue() {
LOGGER.info(BATCH_ENDED);
}
+
+ @Scheduled(cron = "${batch.purge-old-records.cron}")
+ @SchedulerLock(name = "PurgeOldRecordsLock",
+ lockAtLeastFor = "PT1H", lockAtMostFor = "PT1H") //midnight job so lock for an hour
+ public void purgeOldRecords() {
+ LockAssert.assertLocked();
+ try {
+ this.gradDashboardService.purgeOldBatchHistoryRecords();
+ this.gradDashboardService.purgeOldSpringMetaDataRecords();
+ } catch (Exception e) {
+ LOGGER.error(ERROR_MSG, e.getLocalizedMessage());
+ }
+ }
}
diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionContextEntity.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionContextEntity.java
index 36da6f86..dcaff691 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionContextEntity.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionContextEntity.java
@@ -11,7 +11,7 @@
public class BatchJobExecutionContextEntity {
@Id
@Column(name = "JOB_EXECUTION_ID", nullable = false)
- private Long id;
+ private Long jobExecutionId;
@Column(name = "SHORT_CONTEXT", nullable = false, length = 2500)
private String shortContext;
diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionContextEntity.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionContextEntity.java
index 0d0e684f..6668826c 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionContextEntity.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionContextEntity.java
@@ -10,7 +10,7 @@ public class BatchStepExecutionContextEntity {
@Id
@Column(name = "STEP_EXECUTION_ID", nullable = false)
- private Long id;
+ private Long stepExecutionId;
@Column(name = "SHORT_CONTEXT", length = 2500)
private String shortContext;
diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionEntity.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionEntity.java
index 6b01c9e8..3f670bac 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionEntity.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStepExecutionEntity.java
@@ -12,7 +12,7 @@ public class BatchStepExecutionEntity {
@Id
@Column(name = "STEP_EXECUTION_ID", nullable = false)
- private Long id;
+ private Long stepExecutionId;
@Column(name = "JOB_EXECUTION_ID", nullable = false)
private Long jobExecutionId;
diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmJobHistoryRepository.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmJobHistoryRepository.java
index 6a8588b7..dbab9180 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmJobHistoryRepository.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmJobHistoryRepository.java
@@ -1,13 +1,17 @@
package ca.bc.gov.educ.api.batchgraduation.repository;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import ca.bc.gov.educ.api.batchgraduation.entity.BatchGradAlgorithmJobHistoryEntity;
+import org.springframework.transaction.annotation.Transactional;
@Repository
public interface BatchGradAlgorithmJobHistoryRepository extends JpaRepository {
@@ -16,4 +20,8 @@ public interface BatchGradAlgorithmJobHistoryRepository extends JpaRepository findByJobExecutionId(Long batchId);
+ @Transactional
+ @Modifying
+ @Query("delete from BatchGradAlgorithmJobHistoryEntity where createDate <= :createDate")
+ void deleteByCreateDateBefore(LocalDateTime createDate);
}
diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmStudentRepository.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmStudentRepository.java
index 17603024..f2e9ee3e 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmStudentRepository.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/repository/BatchGradAlgorithmStudentRepository.java
@@ -8,7 +8,9 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+import java.time.LocalDateTime;
import java.util.*;
@Repository
@@ -58,5 +60,10 @@ void copyAllGradAlgorithmStudents(
"and status = 'COMPLETED'\n" +
"group by graduation_program_code\n" +
"order by graduation_program_code desc", nativeQuery = true)
- List