org.hibernate.HibernateException: Access to ...
报错
org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set
在配置 SpringBoot Jpa 时,觉得已经配置好了,当运行的时候,却报了这个错。
原因
有可能是选用的数据库不正确,或者数据库的用户名密码错了。还有可能是因为没有设置 Hibernate 的 Dialect。
但是经过我测试,一般情况下是不用配置 Dialect 的,因为默认已经配置好了。主要原因可能是数据库配置不正确,而不是 Dialect。
Hibernate SQL 方言
如果需要配置的话,是这样配置的
1.采用 application.properties 文件
1 | spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect |
2.采用 application.yml
1 | database-platform: org.hibernate.dialect.MySQL5Dialect |
常见的 Dialect
RDBMS | Dialect |
---|---|
Oracle (any version) | org.hibernate.dialect.OracleDialect |
Oracle9i | org.hibernate.dialect.Oracle9iDialect |
Oracle10g | org.hibernate.dialect.Oracle10gDialect |
MySQL | org.hibernate.dialect.MySQLDialect |
MySQL with InnoDB | org.hibernate.dialect.MySQLInnoDBDialect |
MySQL with MyISAM | org.hibernate.dialect.MySQLMyISAMDialect |
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
Microsoft SQL Server | org.hibernate.dialect.SQLServerDialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi SQL | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
FrontBase | org.hibernate.dialect.FrontbaseDialect |
Firebird | org.hibernate.dialect.FirebirdDialect |
参考文献
- GitHub - Hibernate Dialect
- SQL Dialects in Hibernate
- Hibernate Doc
- Spring Boot下使用JPA报错:’hibernate.dialect’ not set的解决办法