SpringBoot Auditing

고관운·2022년 12월 8일
0

SpringBoot Auditing

사용하는 이유

DB변경을 누가했는지, 생성 주체, 생성 일자, 변경 주체, 변경 일자를 기록

적용 방법

  1. JPA Auditing 기능 활성화
    (🔹 2가지 방법이 있는데 Configuration을 추천)
  • Application에 @EnableJpaAuditing 추가
@SpringBootApplication
@EnableJpaAuditing
public class SpringbootApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}
}
  • JpaAuditingConfiguration 추가
@Configuration
@EnableJpaAuditing
public class JpaAuditingConfiguration {
}
  1. BaseEntity 생성
    🔹 @MappedSuperclass : 상속받을 경우 자식 클래스에게 매핑 정보 전달
    🔹 @EntityListeners(AuditingEntityListener.class) : Entity를 DB에 적용하기 전후에 콜백을 요청할 수 있도록
    🔹 @CreatedDate : 생성 날짜를 자동으로 주입
    🔹 @LastModifiedDate : 수정 날짜를 자동으로 주입
@Getter
@Setter
@ToString
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {

    @CreatedDate
    @Column(updatable = false)
    private LocalDateTime createAt;

    @LastModifiedDate
    private LocalDateTime updatedAt;
}
  1. Entity에 적용
    🔹 callSuper = true : 부모 클래스의 필드를 포함
    🔹 extends BaseEntity : BaseEntity 상속
@Entity
...
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class Visit extends BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    ...
}

0개의 댓글