Невозможно разрешить имя [org.hibernate.dialect.MySQL5Dialect] как стратегию [org.hibernate.dialect.Dialect]

Я новичок в Spring Application с Gradle. Запустив мой проект для создания объектов базы данных на основе созданных мною классов, я получил следующую ошибку:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL5Dialect ] as strategy [org.hibernate.dialect.Dialect]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1572)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:960)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:749)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:117)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:689)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:969)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:958)
at com.krypton.smartImmo.SmartImmoApplication.main(SmartImmoApplication.java:10)

Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL5Dialect ] as strategy [org.hibernate.dialect.Dialect]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:128)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:155)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:136)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:78)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:68)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:165)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)

в application.properties у меня есть следующий параметр, касающийся гибернации

spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 

person Djama    schedule 04.11.2015    source источник
comment
Какая у вас версия спящего режима?   -  person Gergely Bacso    schedule 04.11.2015
comment
@GergelyBacso версия 4.3.11.Финальная   -  person Djama    schedule 04.11.2015
comment
Я думаю, вы добавили пробел после org.hibernate.dialect.MySQL5Dialect ....? Я вижу пробел в трассировке стека [org.hibernate.dialect.MySQL5Dialect]   -  person Si mo    schedule 04.11.2015


Ответы (2)


Поскольку ваше сообщение об ошибке содержит этот подозрительный лишний пробел в конце:

Unable to resolve name [org.hibernate.dialect.MySQL5Dialect ]

Я предполагаю, что у вас есть лишний пробел в конце вашего свойства диалекта.

Так что ищите

"org.hibernate.dialect.MySQL5Dialect "

и измените его на:

"org.hibernate.dialect.MySQL5Dialect"
person Gergely Bacso    schedule 04.11.2015
comment
да, вы правы, не знал, что это может быть корнем ошибки :). Рад узнать, что - person Djama; 04.11.2015
comment
Наиболее распространенные ошибки обычно связаны с использованием диалекта, который еще не добавлен в этот конкретный выпуск гибернации, или с забавными опечатками, в основном с ошибками в прописных и строчных буквах. - person Gergely Bacso; 04.11.2015
comment
Как у меня могла быть точно такая же проблема? Черт возьми, 38 из нас сделали. Псих! - person markthegrea; 01.11.2018

Спасибо! У меня тоже была такая же проблема с дополнительным пространством. Просто мы должны убедиться, что всякий раз, когда мы нажимаем на разные строки в файле app.properties, курсор должен находиться в конце, рядом с буквой t MySQL8Dialect. Заключите значение для ключа spring.jpa.properties.hibernate.dialect с кавычками, а затем удалите его, таким образом мне пришлось решить проблему, так как курсор не шел сразу после буквы t.

person ShrikantMane    schedule 09.05.2021
comment
Пожалуйста, перефразируйте, чтобы сделать это более очевидным ответом и менее похожим на описание вашей собственной проблемы. - person Yunnosch; 09.05.2021