반응형
📝@EnableJpaAuditing, @EntityListeneres, @CreateBy, @LastModifiedBy, @CreateDate, @LastModifiedDate
@EnableJpaAuditing // 필수
@SpringBootApplication
public class DataJpaApplication {
public static void main(String[] args) {
SpringApplication.run(DataJpaApplication.class, args);
}
@Bean
public AuditorAware<String> auditorProvider() {
return () -> Optional.of(UUID.randomUUID().toString());
// 실무에서는 세션 정보나, 스프링 시큐리티 로그인 정보에서 ID를 받음
}
}
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
@Getter
public class BaseEntity {
@CreatedBy
@Column(updatable = false)
private String createdBy;
@LastModifiedBy
private String lastModifiedBy;
}
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
@Getter
public class BaseTimeEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createDate;
@LastModifiedDate
private LocalDateTime lastModifiedDate;
}
@Entity
public class Member extends BaseEntity {
@Id
@GeneratedValue
private String id;
private String username;
}
- @EnableJpaAuditing
- 아래 어노테이션을 쓰기 위해 필수 기능이다
- @EntityListeneres
- 해당 엔터티는 JPA Entity에 이벤트 발생시 콜백 처리하라는 의미이다.
- @CreateBy
- 생성자
- @LastModifiedBy
- 수정자
- @CreateDate
- 등록일자
- @LastModifiedDate
- 수정일자
📝@PersistenceContext
@PersistenceContext
EntityManager em;
스프링 부트에서 생성한 EntityManager를 DI시켜준다
반응형