A dialect is a class that provides information about the specifics of a database and translators for the SQL dialect of the database.
Hibernate ORM supports a wide range of dialects out of the box.
Usually, Hibernate supports at least the database version that is also still supported by the respective vendor.In many cases though, Hibernate supports even older versions of the databases,but the support for these versions is not guaranteed.
Below is a list of supported dialects and the minimum required version of the database.
| Dialect | Minimum Database Version |
|---|---|
AzureSQLServerDialect | 11.0 |
CockroachDialect | 22.2 |
DB2Dialect | 10.5 |
DB2iDialect | 7.1 |
DB2zDialect | 12.1 |
DerbyDialect | 10.15.2 |
H2Dialect | 2.1.214 |
HANADialect | 1.0.120 |
HSQLDialect | 2.6.1 |
MariaDBDialect | 10.4 |
MySQLDialect | 8.0 |
OracleDialect | 19.0 |
PostgreSQLDialect | 12.0 |
PostgresPlusDialect | 12.0 |
SQLServerDialect | 11.0 |
SpannerDialect | N/A |
SybaseASEDialect | 16.0 |
SybaseDialect | 16.0 |
TiDBDialect | 5.4 |
Third-parties publish additional dialects for Hibernate ORM, providing their own support for more databases, or extended support beyond what is built in Hibernate ORM.
These dialects are not directly supported by the Hibernate team:
The Hibernate ORM CI does not run any test against these dialects, the dialect’s authors have their own test suite.
The Hibernate team will not address issues reported against these dialect, but the dialect’s authors have their own issue tracker.
Third-party dialects may not be compatible with all versions of Hibernate ORM. Check the dialect’s own documentation to know more about its compatibility constraints.Thecompatibility matrix on the Hibernate website may also be of help. |
Below is a list of third-party dialects with links to relevant websites.
| Dialect | Website |
|---|---|
MongoDB | |
Google Spanner |
Community dialects are not included inorg.hibernate.orm:hibernate-core and require an additional dependency toorg.hibernate.orm:hibernate-community-dialects.
These dialects are not directly supported by the Hibernate team:
The Hibernate ORM CI does not run any test against these dialects.
The Hibernate team will not address issues reported against these dialect.
Instead, the dialects are maintained on a best-effort basis by vendors or individuals.
Below is a list of community dialects and the minimum required version of the database.
| Dialect | Minimum Database Version |
|---|---|
AltibaseDialect | N/A |
CUBRIDDialect | N/A |
CacheDialect | N/A |
CockroachLegacyDialect | N/A |
DB2LegacyDialect | N/A |
DB2iLegacyDialect | N/A |
DB2zLegacyDialect | N/A |
DerbyLegacyDialect | N/A |
FirebirdDialect | N/A |
H2LegacyDialect | N/A |
HSQLLegacyDialect | N/A |
InformixDialect | N/A |
IngresDialect | N/A |
MariaDBLegacyDialect | N/A |
MaxDBDialect | N/A |
MimerSQLDialect | N/A |
MySQLLegacyDialect | N/A |
OracleLegacyDialect | N/A |
PostgreSQLLegacyDialect | N/A |
PostgresPlusLegacyDialect | N/A |
RDMSOS2200Dialect | N/A |
SQLServerLegacyDialect | N/A |
SQLiteDialect | N/A |
SingleStoreDialect | 8.0 |
SybaseASELegacyDialect | N/A |
SybaseAnywhereDialect | 16.0 |
SybaseLegacyDialect | N/A |
TeradataDialect | N/A |
TimesTenDialect | N/A |
Community dialects were introduced in Hibernate ORM 6.0. The To give database vendors and the community a clear way forward, the Hibernate team decided to introduce a new artifact,called Moving forward, the |
hibernate-community-dialects tohibernate-coreIf a database vendor wants their database dialect to be included in thehibernate-core artifact,several requirements have to be fulfilled:
The vendor must provide access to a dedicated database server that can be used for testing
The vendor must provide contact details to at least one employee who is mainly responsible for the maintenance of the dialect
The responsible employee of the vendor must actively monitor and react to failures of the testsuite against the respective database
The responsible employee of the vendor must ensure the testsuite is configured correctly in order for it to succeed on the respective database
If the responsible employee of the vendor leaves the company, the vendor must provide contact details to a new responsible employee
In case the responsible employee is unreachable for a longer period or issues with the dialect are not attended to in a timely manner,the Hibernate team will move the dialect back to thehibernate-community-dialects artifact.
The requirements for the database server are:
JDK 17 installed
Git installed
Access to the database through non-confidential credentials
Access via SSH through confidential credentials
Get in touch with the Hibernate team onZulipif you want to request the move of your dialect to hibernate-core.