Web
JPA metamodel must not be empty!
ellapk
2022. 5. 18. 14:52
JPA는 Entity들의 생성 및 수정 LocalDateTime을 자동으로 관리해주는 Auditing 기능이 있다.
해당 기능 사용을 위해 @EnableJpaAudiring을 추가했었는데 @SpringBootApplication 클래스에 등록에 놓았기에 에러가 생기게 되었다.
package com.web.community.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@EnableJpaAuditing
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring 컨테이너를 요구하는 테스트는 가장 기본이 되는 XXXAplication 클래스가 항상 로드되는데, @EnableJpaAuditing이 해당 클래스에 등록되어 있어서 모든 테스트들이 항상 jpa 관련 Bean을 필요로 하는 상태였다.
해결책
JpaAuditingConfiguration은 따로 분리하여 파일을 생성한다.
package com.web.community.springboot;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@Configuration
@EnableJpaAuditing
public class JpaAuditingConfiguration {
}
@Configuration을 분리하자.
참고 Spring Boot 테스트 에러 : JPA metamodel must not be empty! | Chasing Yesterday (xlffm3.github.io)