[JPA] Auditing


レビューの有効化
  • SpringBootアプリケーションに@EnableJpaAuditing宣言を追加します.
  • @EnableJpaAuditing
    @SpringBootApplication
    public class TestApplication{
    	public static void main(String[] argAS){
        	SpringApplication.run(TestApplication.class, args);
        }
    }
    BaseEntityの作成
  • レビューが必要なEntity継承のBaseEntityを作成します.
  • @Getter
    @MappedSuperclass
    @EntityListeners(AuditingEntityListener.class)
    public abstract class BaseEntity{
    	@CreatedDate
        @Column(updatable = false)
        private LocalDateTime createdDate;
        
        @LastModifiedDate
        private LocalDateTime updatedDate;
        
        @CreatedBy
        @Column(updatable = false)
        private String createdBy;
        
        @LastModifiedBy
        private String modifiedBy;
    }
    @MappedSuperclass (javax.persistence)
  • Entityがテーブルの共通マッピング情報を必要とする場合、親クラスでテーブルを定義および継承し、このフィールドを使用して重複
  • を削除できます.
    @EntityListenrs (javax.persistence)
  • EntityはDBの前に適用され、その後、顧客コールバックのアシスタント
  • を要求することができる.
    Class AuditingEntityListner (org.springframework.data.jpa)
  • JPA Entity Listener
  • @CreatedDate (org.springframework.data)
  • 自動格納データ作成日
  • @LastModifiedDate (org.springframework.data)
  • 自動記憶データ修正日
  • @CreatedBy (org.springframework.data)
  • 自動記憶データ生成器
  • @LastModifiedBy (org.springframework.data)
  • 自動記憶データ修正者
  • Entityへの適用
    @Getter
    @Entity
    @NoArgsConstructor(access = PROTECTED)
    public class class Users extends BaseEntity{
    	@Id
        @GeneratedValue
        @Column(name = "user_id")
        private Long id;
        
        private String name;
    }
    https://web-km.tistory.com/42