개발/JPA

history Envers로 개발 @Configuration @EnableJpaAuditing

멋진놈 2022. 7. 21. 15:41
728x90

https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-envers/6.0.2.Final

 

Maven Repository: org.hibernate.orm » hibernate-envers » 6.0.2.Final

Hibernate's entity version (audit/history) support Note: There is a new version for this artifact org.hibernate.orm hibernate-envers 6.0.2.Final // https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-envers implementation group: 'org.hibernate.o

mvnrepository.com

 

build.gradle로 

implementation 'org.hibernate.orm:hibernate-envers:6.0.2.Final'

넣어줌. 처음에 이것을 넣으니 

Class file has wrong version 52.0, should be 50.0  

에러나옴 --> 원인 6.0 버전 이상 부터는 자바11을 지원하기 때문에 생긴 문제.

 

implementation 'org.hibernate:hibernate-envers:5.6.10.Final'

자바8 이기 때문에 이걸 사용

 

 

2. Jpa Auditing 활성화

Application.java 또는 Config 파일에 @EnableJpaAuditing 어노테이션을 추가해줍니다.
 
1
2
@EnableJpaAuditing
public class Application extends SpringBootServletInitializer {
cs

 

나는 사용

import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@Configuration
@EnableJpaAuditing
public class JpaConfig {
    public JpaConfig() {
    }
}

@Configuration

-> 그냥 설정 값을 지정 하고 싶을 때 사용하는 어노테이션 

 

@EnableJpaAuditing

 

@Configuration 설명

https://mangkyu.tistory.com/75

 

[Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 - (1/2)

기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션(Annotation, @)를 활

mangkyu.tistory.com

 

 

@Entity
@Audited
public class Board extends BaseTimeEntity {

만 달아주면 됨.

@Audited

 

그리고 안에 만약에 다른 내용을 extends(상속) 받아서 칼럼으로 만들어서 쓰고 싶으면

마찬가지로 달아줘야함.

 

@Audited
public abstract class BaseTimeEntity {

    @CreatedDate //생성할 때 자동저장
    private LocalDateTime createdDate;

    @LastModifiedDate //수정할 때 자동저장
    private LocalDateTime modifiedDate;
}

그러면 이쁘게 extends로 상속 받은 created_date , modified_date 포함해서 테이블이 이쁘게 만들어짐 굿굿

 

 

만약에 컴파일 안되면 

그 다른 테이블 참조 안됐다고 뭐시기 에러 나올텐데,

다른 곳에도 넣어주자 그럼 해결됨.