티스토리 뷰

AuditEntityListener는 Spring data jpa에서 구현한 EntityListener이다.

쉽게말해 Java에서 ORM 기술은 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재합니다 대표적으로 새엇ㅇ일자 수정일자 식별자 같은 필드 및 컬럼이 있습니다.

도메인마다 공통으로 존재한다는 의미는 결국 코드가 중복된다는 말과 일맥상통 합니다.

 

그래서 JPA에서는 Audit 이라는 기능을 제공하고 있습니다.

@PrePersist, @PreUpdate 설정을 통해 엔티티가 영속화 되기 이전에 AuditingHandler를 통해 생성일, 생성자, 수정일, 수정자를 자동으로 찾아서 설정한다.

 

 

 

| Audit이란?

Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능입니다.

도메인을 영속성 컨텍스트에 저장하거나 조회를 수행한 후에update를 하는 경우 매번 시간 데이터를 입력하여 주어야 하는데

audit을 이용하면 자동으로 시간을 매핑하여 데이터베이스의 테이블에 넣어주게 됩니다.

 

먼저 audit을 사용하려면 의존성을 추가해야합니다.

dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.projectlombok:lombok')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
}

->기존적으로 spring boot에서 gradle로 의존성을 관리하는 경우에는 spring-boot-starter-data=jpa 만 추가해도

Audit을 하는데는 문제가 없습니다.

 

참고로 자바 1.8 이상부터는 기존의 문제가 있던 Date, Calander 클래스를 사용하지 않고 LocalDate, LocalDateTime 클래스를 사용합니다. 또한 LocalDateTime 객체와 테이블 사이의 매핑이 안되던 이슈는 하이버네이트 5.2 버전부터 해결이 되었습니다.

 

'Database > JPA' 카테고리의 다른 글

[JPA] JPA기본 정리 및 메서드 종류  (0) 2020.08.04
[JPA]@Id와@GeneratedValue 기본키 전략  (0) 2020.02.11