Interface DiagnosisKeyRepository

  • All Superinterfaces:
    org.springframework.data.repository.CrudRepository<DiagnosisKey,​Long>, org.springframework.data.repository.PagingAndSortingRepository<DiagnosisKey,​Long>, org.springframework.data.repository.Repository<DiagnosisKey,​Long>

    @Repository
    public interface DiagnosisKeyRepository
    extends org.springframework.data.repository.PagingAndSortingRepository<DiagnosisKey,​Long>
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int countOlderThan​(long submissionTimestamp)
      Counts all entries that have a submission timestamp less or equal than the specified one.
      void deleteOlderThan​(long submissionTimestamp)
      Deletes all entries that have a submission timestamp less or equal than the specified one.
      boolean saveDoNothingOnConflict​(byte[] keyData, int rollingStartIntervalNumber, int rollingPeriod, long submissionTimestamp, int transmissionRisk)
      Attempts to write the specified diagnosis key information into the database.
      • Methods inherited from interface org.springframework.data.repository.CrudRepository

        count, delete, deleteAll, deleteAll, deleteById, existsById, findAll, findAllById, findById, save, saveAll
      • Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

        findAll, findAll
    • Method Detail

      • countOlderThan

        @Query("SELECT COUNT(*) FROM diagnosis_key WHERE submission_timestamp<:threshold")
        int countOlderThan​(@Param("threshold")
                           long submissionTimestamp)
        Counts all entries that have a submission timestamp less or equal than the specified one.
        Parameters:
        submissionTimestamp - The submission timestamp up to which entries will be expired.
        Returns:
        The number of expired keys.
      • deleteOlderThan

        @Modifying
        @Query("DELETE FROM diagnosis_key WHERE submission_timestamp<:threshold")
        void deleteOlderThan​(@Param("threshold")
                             long submissionTimestamp)
        Deletes all entries that have a submission timestamp less or equal than the specified one.
        Parameters:
        submissionTimestamp - The submission timestamp up to which entries will be deleted.
      • saveDoNothingOnConflict

        @Modifying
        @Query("INSERT INTO diagnosis_key (key_data, rolling_start_interval_number, rolling_period, submission_timestamp, transmission_risk_level) VALUES (:keyData, :rollingStartIntervalNumber, :rollingPeriod, :submissionTimestamp, :transmissionRisk) ON CONFLICT DO NOTHING")
        boolean saveDoNothingOnConflict​(@Param("keyData")
                                        byte[] keyData,
                                        @Param("rollingStartIntervalNumber")
                                        int rollingStartIntervalNumber,
                                        @Param("rollingPeriod")
                                        int rollingPeriod,
                                        @Param("submissionTimestamp")
                                        long submissionTimestamp,
                                        @Param("transmissionRisk")
                                        int transmissionRisk)
        Attempts to write the specified diagnosis key information into the database. If a row with the specified key data already exists, no data is inserted.
        Parameters:
        keyData - The key data of the diagnosis key.
        rollingStartIntervalNumber - The rolling start interval number of the diagnosis key.
        rollingPeriod - The rolling period of the diagnosis key.
        submissionTimestamp - The submission timestamp of the diagnosis key.
        transmissionRisk - The transmission risk level of the diagnosis key.
        Returns:
        true if the diagnosis key was inserted successfully, false otherwise.