Tidak dapat menentukan nama [org.hibernate.dialect.MySQL5Dialect ] sebagai strategi [org.hibernate.dialect.Dialect]

Saya baru di Aplikasi Musim Semi dengan Gradle. Menjalankan proyek saya untuk membuat objek database berdasarkan kelas yang saya buat, saya mendapat kesalahan berikut:

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)

di application.properties saya memiliki pengaturan berikut mengenai hibernasi

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 sumber
comment
Anda menggunakan versi hibernasi yang mana?   -  person Gergely Bacso    schedule 04.11.2015
comment
@GergelyBacso versi 4.3.11.Final   -  person Djama    schedule 04.11.2015
comment
Saya pikir Anda menambahkan spasi setelah org.hibernate.dialect.MySQL5Dialect ....? Saya melihat yang kosong di stacktrace [org.hibernate.dialect.MySQL5Dialect ]   -  person Si mo    schedule 04.11.2015


Jawaban (2)


Karena pesan kesalahan Anda berisi ruang ekstra yang mencurigakan di bagian akhir:

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

Saya akan menebak bahwa Anda memiliki spasi ekstra di akhir properti dialek Anda.

Jadi carilah

"org.hibernate.dialect.MySQL5Dialect "

dan ubah menjadi:

"org.hibernate.dialect.MySQL5Dialect"
person Gergely Bacso    schedule 04.11.2015
comment
ya Anda benar tidak tahu ini bisa menjadi akar kesalahan :). Senang mempelajarinya - person Djama; 04.11.2015
comment
Kesalahan paling umum biasanya adalah penggunaan dialek yang belum ditambahkan ke rilis hibernasi tertentu, atau kesalahan ketik lucu yang sebagian besar berupa kesalahan huruf besar/kecil. - person Gergely Bacso; 04.11.2015
comment
Bagaimana saya bisa mengalami masalah yang sama persis? Heck, 38 dari kita melakukannya. Gila! - person markthegrea; 01.11.2018

Terima kasih! Saya juga memiliki masalah yang sama mengenai ruang ekstra. Hanya saja kita harus memastikan bahwa, setiap kali kita mengklik baris berbeda di file app.properties, kursor harus berada di akhir, tepat di samping huruf t dari MySQL8Dialect. Lampirkan nilai untuk kunci spring.jpa.properties.hibernate.dialect dengan tanda kutip lalu hapus, dengan begitu saya harus menyelesaikan masalah tersebut, karena kursor tidak muncul tepat setelah huruf t.

person ShrikantMane    schedule 09.05.2021
comment
Harap ulangi untuk membuat jawaban ini lebih jelas dan tampak kurang menggambarkan masalah Anda sendiri. - person Yunnosch; 09.05.2021