Java

Errorfix : compatible version of org.hibernate.dialect.MySQL57Dialect

손가든 2024. 1. 2. 00:45

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

 

결과는 해결 !

 

이 문제에 대해서 동일한 문제를 일으킨 사람들이 많지 않은 걸 보니..

 

정확한 문제는 차차 다시 알아보겠다. (일단은 지금 당장 해결 된 것에 만족)