Spring JPA Auditing

두주·2024년 2월 2일
0

TIL

목록 보기
47/58

JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때,
공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재한다.

대표적으로 생성일자, 수정일자, 식별자 같은 필드와 컬럼이 있다.

도메인마다 공통으로 존재한다는 의미는, 결국 코드가 중복된다는 것이다.

Created_at과 Updated_at 등에 주로 사용된다.

어노테이션설명
@MappedSuperclassJPA Entity 클래스들이 해당 추상 클래스를 상속할 경우 createDate, modifiedDate를 컬럼으로 인식
@EntityListeners(AuditingEntityListener.class)해당 클래스에 Auditing 기능을 포함
@CreatedDateEntity가 생성되어 저장될 때 시간이 자동 저장
@LastModifiedDate조회한 Entity의 값을 변경할 때 시간이 자동 저장

어노테이션을 사용했을 때, JPA가 생성일자, 수정일자 컬럼을 인식한다.

그리고 영속성 컨텍스트에 저장한 후 BaseTimeEntity 클래스의 Auditing 기능으로 인해
트랜잭션 커밋 시점에 플러시가 호출할 때 하이버네이트가 자동으로 시간값을 채워준다.

profile
야옹.

0개의 댓글