スプリングガイドの使用-共通列の監査設定
商品を売買できる宿屋を建てることを想定します.多くの場合、売り手が商品を登録する場合、消費者が登録する場合、商品に対する問い合わせを残す場合など、そのエンティティの登録時間、すなわちinsert時点を記録する必要がある.
参考までにAuditing機能はJPAから提供されています.
では、
Springプロジェクトを実行する場合、@SpringBootApplication操作を含むアプリケーションクラスがデフォルトです.
レビュー機能を使用するには、次のようにクラスに@EnableJpaAuditing宣言を追加する必要があります.
次に、一般的なカラムを定義する抽象クラスを作成します.
生成時間が
その後、生成時間は
JPAはこれを確認し、
次にinsertableをfalseに設定すると、カラムが挿入から除外されることを示します.簡単に言えばDBのinsert文から除外します.変更時間の場合は、エンティティを挿入するときにfalseに設定する必要があります.これは空である必要があります.
実際、このエンティティークラスではcreatedDTとupdatedDTは定義されていませんが、一緒にDBに昇格していることがわかります.
**このように、テーブルやサービスでいくつかの機能を繰り返す場合、主に監査機能が使用されます。
参考までにAuditing機能はJPAから提供されています.
では、
생성시간
と수정시간
の2種類をレビューに設定し、DBに登録しましょう.1.アプリケーションクラスに@EnableJpaAuditingを追加
Springプロジェクトを実行する場合、@SpringBootApplication操作を含むアプリケーションクラスがデフォルトです.
レビュー機能を使用するには、次のようにクラスに@EnableJpaAuditing宣言を追加する必要があります.
2.汎用抽象クラスの作成
次に、一般的なカラムを定義する抽象クラスを作成します.
生成時間が
createdDate
、修正時間がmodifiedDate
のフィールドをそれぞれ記入した.その後、生成時間は
@CreatedDate
、修正時間は@LastModifiedDate
とする.JPAはこれを確認し、
@CreatedDate
と宣言されたフィールドは、各tupleが生成されたときにその時間を記録し、@LastModifiedDate
と宣言された場合、各tupleが変更されるたびに更新時間を記録する. - @MappedSuperclass
:エンティティがCommonTimeを継承すると、クラスのフィールドが自動的にカラム形式で作成されます(createdDate,modifiedDate).- @EntityListeners(AuditingEntityListener.class)
:CommonTimeクラスはレビューを許可します. - @Getter
:以降の生成時間の取得、時間値の変更に使用します.Getterがない場合は、プライベートフィールドであるため、値を取得できません. - updatable=false, insertable=false
:updataableをfalseに設定すると、カラムは変更されません.作成時間については、作成後に一度も変更されないため(予期せぬ変更はできません)、falseに設定する必要があります.次にinsertableをfalseに設定すると、カラムが挿入から除外されることを示します.簡単に言えばDBのinsert文から除外します.変更時間の場合は、エンティティを挿入するときにfalseに設定する必要があります.これは空である必要があります.
3.必要なクラスから引き継いで使用
public class Gallery extends CommonTime {...}
最後に、上記のように、継承したいクラスごとにCommonTimeを継承するだけで完了します.実際、このエンティティークラスではcreatedDTとupdatedDTは定義されていませんが、一緒にDBに昇格していることがわかります.
Reference
この問題について(スプリングガイドの使用-共通列の監査設定), 我々は、より多くの情報をここで見つけました https://velog.io/@minji/스프링부트-Auditing을-이용해-생성시간-자동-설정하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol