JPA - Auditing


Section 1. Auditing


1. Auditing
エンティティに共通するメンバー変数(登録時間、変更時間、登録者、変更者など)を抽象クラスとして作成し、その抽象クラスを継承してエンティティに共通機能を実行し、エンティティの作成と変更のテクノロジーを監視します.
2.監査が必要
  • 複数のエンティティに共通のメンバー変数が存在する場合、それを1つの抽象クラスに統合して
  • を実施することができる.
  • は、登録時間、変更時間、登録者、変更者などのエンティティ状態の変更に関する情報を記録することができる.
  • レコードに基づく
  • は、エラークエリ、変更ターゲットクエリの更新など、さまざまな状況で使用できます.
    3. AuditorAware
    AuditorAwareインタフェースを実装し、登録者と変更者として
  • ログインユーザーを指定します.
  • 現在のログインユーザの情報を抽出する
  • Authentication authentication =
                    SecurityContextHolder.getContext().getAuthentication();
    4. Auditing Config
  • @EnableJpaAuditingを指定してAuditing機能
  • を有効にします.
  • "AuditorProvider"名でAuditorAwareインプリメンテーションBeanを登録
  • 5. BaseTimeEntity
  • 登録者と修正者以外の時間監査
  • 6. BaseEntity
  • の登録者および変更者、登録および変更時間を有するEntity
  • .
  • BaseTimeEntity継承
  • 私は好奇心を我慢できない。 (@EnableJpaAuditing, @EntityListeners, @MappedSuperclass)
    7.メンバーエンティティ監査
  • メンバークラスからBaseEntityを継承
  • 8.メンバーエンティティ監査テスト
  • クラスとDIの作成
  • メンバーエンティティ監査テスト
  • @WithMockUserを使用して「codren」USERにログインしてメンバー・オブジェクトを作成
  • レビュー結果(登録および変更時間、登録および変更者)
  • 9.エンティティ監査の適用
  • レビューを残りのEntity
  • に適用
  • にreggTimeまたはupdateTimeフィールドが既に存在する場合は、
  • を削除します.