java spring jpa 구현체인 hibernate를 사용하면서 발생한 버그이다.
Exception encountered during context initialization - cancelling refresh attempt:
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'entityManagerFactory' defined in class path resource [org/springframework/boot
/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: 'void org.hibernate.dialect.
MySQL57Dialect.registerColumnType(int, java.lang.String)'
jpa에서 자동으로 수행해주는 entityManagerFactory bean 설정 중 무언가 잘못된 듯 했다.
MySQL57Dialect 라는 클래스가 없다라고 출력되는데
이 클래스에 대한 코드를 gradle 설정파일인 application.properties에 다음과 같이 추가해주라는 조언을 듣고 추가해보았다.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
근데도 안되더라.
Correct the classpath of your application so that it contains a single,
compatible version of org.hibernate.dialect.MySQL57Dialect
버전에 대해 컴플릭트가 난 듯 해보였다.
이유를 아무리 찾아도 문제가 있어서 고민에 빠져있던 나는 MySQL57Dialect를 지우다가 dialect 관련 자동완성 class들을 살펴보게 되었다.
그러다가 어 저 취소선 class는 뭐지? 하고 한번 들어가보았다.
지원 중단이라는 class 표시를 보면서 "아 혹시 57도 지원중단됬는데 내 버전이 낮아서 아직 변경이 안됬나?" 싶어서
만약 지원이 중단된 것이라면 class를 통합했을 것 같아 MySQLDialect로 properties 내용을 수정해보았다.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
결과는 해결 !
이 문제에 대해서 동일한 문제를 일으킨 사람들이 많지 않은 걸 보니..
정확한 문제는 차차 다시 알아보겠다. (일단은 지금 당장 해결 된 것에 만족)
'Java' 카테고리의 다른 글
Spring-boot 빌드 오류 : java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.cfg.DatatypeFeature (0) | 2024.01.07 |
---|---|
[TIL] JAVA : @Bean, IoC 컨테이너, 의존성 주입 (2) | 2024.01.03 |
[TIL] spring을 공부하기 전 배워야 할 것들 (2) : 빌드 도구의 선택 (2) | 2023.12.30 |
[TIL] spring을 공부하기 전 배워야 할 것들 (1) : Java의 특징과 빌드 과정 (1) | 2023.12.30 |
[JAVA] 인터페이스의 기본부터 응용까지 (2) - 인터페이스 사용법 익히기 (0) | 2023.05.24 |