Interface FileReferenceResolver


public interface FileReferenceResolver

檔案參照解析 SPI(選用,升級 sweep 為策略 B)

FileOrphanSweepTask 對「崩潰窗模糊項」(journal 顯示 CREATED/DELETE_PENDING 久未收尾) 無法單憑 journal 判定是否為孤兒——權威事實在資料庫。提供本解析器的實作即升級為策略 B: sweep 對模糊項查詢「此 fileId 是否被任何已 commit 的業務 row 參照」,未參照才刪除。

不提供時 sweep 走策略 A:只刪可證明的孤兒(補償失敗殘留),模糊項僅報告、不自動刪。

實作慣例

  • 由應用層實作(它知道自己有哪些 entity 嵌入 FileDescriptor、對應哪些欄位)。
  • 註冊為 Spring bean 即被 sweep 自動採用;查詢應只認已 commit的資料(一般 @Transactional(readOnly = true))。
  • partition 語意同 FileStorage 的 partition 參數(多租戶為 tenant ID)。
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    isReferenced(String partition, String fileId)
    此 fileId 是否被任何已提交的業務資料參照
  • Method Details

    • isReferenced

      boolean isReferenced(String partition, String fileId)
      此 fileId 是否被任何已提交的業務資料參照
      Parameters:
      partition - 儲存分區鍵
      fileId - 永久區檔案 ID
      Returns:
      true 表示仍被參照(不可刪);false 表示無參照(可視為孤兒)