in src/main/java/com/google/gcs/sdrs/dao/impl/DmQueueDaoImpl.java [160:192]
public void createRetentionJobUdpateDmStatus(
RetentionJob retentionJob, List<DmRequest> dmRequests) throws IOException {
Session session = null;
Transaction transaction = null;
try {
session = openSession();
transaction = session.beginTransaction();
Integer retentionJobId = (Integer) session.save(retentionJob);
dmRequests.stream().forEach(request -> request.setRetentionJobId(retentionJobId));
int i = 0;
// database batch update
for (DmRequest dmRequest : dmRequests) {
session.saveOrUpdate(dmRequest);
if (++i % 20 == 0) {
session.flush();
session.clear();
}
}
closeSessionWithTransaction(session, transaction);
} catch (Exception e) {
handleRuntimeException(e, transaction);
throw new IOException(
String.format(
"Failed to create retention job and update DM requests. bucket: %s; STS: %s.",
retentionJob.getDataStorageRoot(), retentionJob.getName()));
} finally{
closeSession(session);
}
}