반응형
엔티티 변경 시점에 언제, 누가 변경했는지에 대한 정보를 기록하는 기능
- Auditing 정보를 담은 추상 클래스 생성어노테이션설명
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime lastModitiedDate;
}
@MappedSuperclass | 엔티티 클래스들이 해당 어노테이션이 달린 클래스를 상속할 경우 CreatedDate 등의 어노테이션을 컬럼으로 인식 |
@EntityListeners(AuditingEntityListener.class) | 해당 클래스에 Auditing 기능을 포함 |
@CreatedDate | 엔티티가 생성되어 DB에저장될 때 시간 자동저장 |
@LastModifiedDate | 엔티티가 수정될 시 시간 자동 저장 |
@CreatedBy | 엔티티를 생성한 user 저장 |
@LastModifiedBy | 엔티티를 수정한 user 저장 |
2. 원하는 엔티티에 Auditing 클래스 상속 및 Application main에 @EnableJpaAuditing 설정
@Entity
@Table(name = "user")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class User extends BaseTimeEntity {
@Id
@Column(name = "user_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
long id;
//...생략
}
@EnableJpaAuditing
@SpringBootApplication
public class PlatformApplication {
public static void main(String[] args) {
SpringApplication.run(PlatformApplication.class, args);
}
}
3.DB에 저장 시 createdDate와 lastModitiedDate가 같이 저장된 것을 볼 수 있다.
반응형
'개발 일기 > spring' 카테고리의 다른 글
Spring Batch Insert 어떻게 해결했을까 (0) | 2022.08.11 |
---|---|
Spring에서 외부 API 호출하기 3 (WebClient 활용) (0) | 2022.08.11 |
Spring에서 외부 API 호출하기 2 (Webclient) (0) | 2022.08.11 |
Spring에서 외부 API 호출하기 1 (RestTemplate) (0) | 2022.08.11 |
JPA OneToOne 관계인데 2개가 저장됨 (0) | 2022.08.10 |
댓글