Over the limit

JPA metamodel must not be empty! 본문

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)