public void createRetentionJobUdpateDmStatus()

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);
    }
  }