Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 问题的解决方法
程序员文章站
2022-04-13 14:14:08
...
环境为:Spring Boot2 + Gradle5。
使用了 spring-boot-starter-data-jpa 依赖并配置了 MySQL 驱动与相关用户名、密码等配置。启动时抛出以下异常:
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837) ~[spring-beans-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774) ~[spring-beans-5.1.9.RELEASE.jar:5.1.9.RELEASE]
... 21 more
**原因:**因为 JPA 用到了 Hibernate,而 Hibernate 必须配置方言。
**解决:**在 application.yml 中的 spring 节点,为 Hibernate 配置 MySQL 方言:
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
Spring Boot 重点就在配置,学会看错误堆栈日志,有利于快速定位问题。
上一篇: Antlr4入门(四)监听器、访问器与语法分析树的标注
下一篇: ExceptionInInitialize Access to DialectResolutionInfo cannot be null when 'hibernate.dialect'not set
推荐阅读
-
Springboot启动出错:Access to DialectResolutionInfo cannot be null when hibernate.dialect not set
-
Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
-
【Hibernate】Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect‘ not set
-
Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not Set
-
springboot启动失败:Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set
-
springboot启动出现Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set
-
Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 问题的解决方法
-
ExceptionInInitialize Access to DialectResolutionInfo cannot be null when 'hibernate.dialect'not set
-
Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set