반응형

📝@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시켜준다

반응형