@Audited
어노테이션이랑 혼동하기 쉽지만 해당 어노테이션은 envers에서 사용되는 어노테이션의존성
implemenation("org.springframework.boot:spring-boot-starter-data-jpa")
BaseEntity
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@CreatedDate
@LastModifiedDate
코드 예시
@Getter
@MappedSuperclass
@EntityListener(AuditingEntityListener.class)
public abstract class BaseEntity {
@CreatedDate
private LocalDateTime createdAt
@LastModifiedDate
private LocalDateTime updatedAt;
}
@Getter
@NoArgsConstructor
@Entity
public class User extends BaseEntity {
@Id
@GeneratedValue(strategy = GenenrationType.IDENTITY)
private Long id;
}
// configuration 또는 main 클래스에 아래 어노테이션을 통해 활성화
@EnableJpaAuditing(dateTimeProviderRef = "auditingDateTimeProvider")
// datetime 위한 provider 빈 등록
@Bean
fun auditingDateTimeProvider(): DateTimeProvider {
return DateTimeProvider { Optional.of(OffsetDateTime.not()) }
}