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フィールドが既に存在する場合は、を削除します.
Reference
この問題について(JPA - Auditing), 我々は、より多くの情報をここで見つけました
https://velog.io/@codren/JPA-Auditing
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol