Skip to content

Commit

Permalink
fix outdated section of user guide relating to Dialects
Browse files Browse the repository at this point in the history
  • Loading branch information
gavinking committed Apr 18, 2023
1 parent 19da8f3 commit 0674300
Showing 1 changed file with 10 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ This usage is discouraged and not discussed here.
[[database-connectionprovider-isolation]]
=== ConnectionProvider support for transaction isolation setting

All of the provided ConnectionProvider implementations, other than `DataSourceConnectionProvider`, support consistent setting of transaction isolation for all `Connections` obtained from the underlying pool.
All the provided `ConnectionProvider` implementations, apart from `DataSourceConnectionProvider`, support consistent setting of transaction isolation for all `Connections` obtained from the underlying pool.
The value for `hibernate.connection.isolation` can be specified in one of 3 formats:

* the integer value accepted at the JDBC level.
Expand Down Expand Up @@ -252,68 +252,12 @@ Therefore for user-provided connection, the connection is acquired right away an
[[database-dialect]]
=== Database Dialect

Although SQL is relatively standardized, each database vendor uses a subset and superset of ANSI SQL defined syntax.
This is referred to as the database's dialect.
Hibernate handles variations across these dialects through its `org.hibernate.dialect.Dialect` class and the various subclasses for each database vendor.

In most cases, Hibernate will be able to determine the proper Dialect to use by asking some questions of the JDBC Connection during bootstrap.
For information on Hibernate's ability to determine the proper Dialect to use (and your ability to influence that resolution), see <<chapters/portability/Portability.adoc#portability-dialectresolver,Dialect resolution>>.

If for some reason it is not able to determine the proper one or you want to use a custom Dialect, you will need to set the `hibernate.dialect` setting.

.Provided Dialects
[width="100%",cols="28%,72%",options="header",]
|=======================================================================
|Dialect (short name) |Remarks
|Cache71 |Support for the Caché database, version 2007.1.
|CockroachDB192 |Support for the CockroachDB database version 19.2.
|CockroachDB201 |Support for the CockroachDB database version 20.1.
|CUBRID |Support for the CUBRID database, version 8.3. May work with later versions.
|DB2 |Support for the DB2 database, version 8.2.
|DB297 |Support for the DB2 database, version 9.7.
|DB2390 |Support for DB2 Universal Database for OS/390, also known as DB2/390.
|DB2400 |Support for DB2 Universal Database for iSeries, also known as DB2/400.
|DB2400V7R3 |Support for DB2 Universal Database for i, also known as DB2/400, version 7.3
|DerbyTenFive |Support for the Derby database, version 10.5
|DerbyTenSix |Support for the Derby database, version 10.6
|DerbyTenSeven |Support for the Derby database, version 10.7
|Firebird |Support for the Firebird database
|FrontBase |Support for the Frontbase database
|H2 |Support for the H2 database
|HANACloudColumnStore |Support for the SAP HANA Cloud database column store.
|HANAColumnStore |Support for the SAP HANA database column store, version 2.x. This is the recommended dialect for the SAP HANA database. May work with SAP HANA, version 1.x
|HANARowStore |Support for the SAP HANA database row store, version 2.x. May work with SAP HANA, version 1.x
|HSQL |Support for the HSQL (HyperSQL) database
|Informix |Support for the Informix database
|Ingres |Support for the Ingres database, version 9.2
|Ingres9 |Support for the Ingres database, version 9.3. May work with newer versions
|Ingres10 |Support for the Ingres database, version 10. May work with newer versions
|Interbase |Support for the Interbase database.
|JDataStore |Support for the JDataStore database
|McKoi |Support for the McKoi database
|Mimer |Support for the Mimer database, version 9.2.1. May work with newer versions
|MySQL5 |Support for the MySQL database, version 5.x
|MySQL5InnoDB |Support for the MySQL database, version 5.x preferring the InnoDB storage engine when exporting tables.
|MySQL57InnoDB |Support for the MySQL database, version 5.7 preferring the InnoDB storage engine when exporting tables. May work with newer versions
|MariaDB |Support for the MariaDB database. May work with newer versions
|MariaDB53 |Support for the MariaDB database, version 5.3 and newer.
|Oracle8i |Support for the Oracle database, version 8i
|Oracle9i |Support for the Oracle database, version 9i
|Oracle10g |Support for the Oracle database, version 10g
|Pointbase |Support for the Pointbase database
|PostgresPlus |Support for the Postgres Plus database
|PostgreSQL81 |Support for the PostgrSQL database, version 8.1
|PostgreSQL82 |Support for the PostgreSQL database, version 8.2
|PostgreSQL9 |Support for the PostgreSQL database, version 9. May work with later versions.
|Progress |Support for the Progress database, version 9.1C. May work with newer versions.
|SAPDB |Support for the SAPDB/MAXDB database.
|SQLServer |Support for the SQL Server 2000 database
|SQLServer2005 |Support for the SQL Server 2005 database
|SQLServer2008 |Support for the SQL Server 2008 database
|Sybase11 |Support for the Sybase database, up to version 11.9.2
|SybaseAnywhere |Support for the Sybase Anywhere database
|SybaseASE15 |Support for the Sybase Adaptive Server Enterprise database, version 15
|SybaseASE157 |Support for the Sybase Adaptive Server Enterprise database, version 15.7. May work with newer versions.
|Teradata |Support for the Teradata database
|TimesTen |Support for the TimesTen database, version 5.1. May work with newer versions
|=======================================================================
Although SQL is now relatively standardized&mdash;much more so than in the past&mdash;it's still the case that each database vendor implements a different dialect of SQL that, while overlapping significantly with ANSI SQL, forms neither a subset, nor a superset, of the standard.

Hibernate abstracts over variations between dialects of SQL via the class `org.hibernate.dialect.Dialect`.

- There's a subclass of `Dialect` for each supported relational database in the package `org.hibernate.dialect`.
- Additional community-supported ``Dialect``s are available in the separate module `hibernate-community-dialects`.

In Hibernate 6, it's no longer necessary to explicitly specify a dialect using the configuration property `hibernate.dialect`, and so setting that property is now discouraged.
(An exception is the case of custom user-written ``Dialect``s.)

0 comments on commit 0674300

Please sign in to comment.