Skip to content

Commit 8921120

Browse files
committed
HHH-19889 Mention third-party dialects throughout the documentation
1 parent 295af47 commit 8921120

File tree

5 files changed

+60
-3
lines changed

5 files changed

+60
-3
lines changed

documentation/src/main/asciidoc/dialect/dialect.adoc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,33 @@ Below is a list of supported dialects and the minimum required version of the da
2424

2525
include::{generated-report-dir}/dialect/dialect-table.adoc[]
2626

27+
[[third-party-dialects]]
28+
== Third-party dialects
29+
30+
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.
31+
32+
These dialects are not directly supported by the Hibernate team:
33+
34+
* The Hibernate ORM CI does not run any test against these dialects, the dialect's authors have their own test suite.
35+
* The Hibernate team will not address issues reported against these dialect, but the dialect's authors have their own issue tracker.
36+
37+
[NOTE]
38+
====
39+
Third-party dialects may not be compatible with all versions of Hibernate ORM.
40+
41+
Check the dialect's own documentation to know more about its compatibility constraints.
42+
The https://hibernate.org/orm/releases/#compatibility-matrix[compatibility matrix on the Hibernate website] may also be of help.
43+
====
44+
45+
Below is a list of third-party dialects with links to relevant websites.
46+
47+
[cols="a,a", options="header"]
48+
|===
49+
|Dialect |Website
50+
|MongoDB| https://github.com/mongodb/mongo-hibernate/[MongoDB extension for Hibernate ORM]
51+
|Google Spanner| https://github.com/GoogleCloudPlatform/google-cloud-spanner-hibernate[Google Cloud Spanner Dialect for Hibernate ORM]
52+
|===
53+
2754
[[community-dialects]]
2855
== Community dialects
2956

documentation/src/main/asciidoc/introduction/Configuration.adoc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ driver for your database.
7272
| Oracle | `com.oracle.database.jdbc:ojdbc17:{version}`
7373
| H2 | `com.h2database:h2:{version}`
7474
| HSQLDB | `org.hsqldb:hsqldb:{version}`
75+
| MongoDB | The JDBC driver is bundled with the dialect mentioned in <<optional-dependencies>>
76+
| Google Spanner | `com.google.cloud:google-cloud-spanner-jdbc:{version}`
7577
|===
7678

7779
Where `{version}` is the latest version of the JDBC driver for your database.
@@ -122,6 +124,13 @@ or `org.eclipse:yasson`
122124
| <<jfr,Hibernate JFR>>, for monitoring via Java Flight Recorder | `org.hibernate.orm:hibernate-jfr`
123125
| Hibernate Jandex integration, for <<entity-discovery,entity discovery>> | `org.hibernate.orm:hibernate-scan-jandex`
124126
| link:{doc-dialect-url}#community-dialects[Community dialects] | `org.hibernate.orm:hibernate-community-dialects`
127+
| link:{doc-dialect-url}#third-party-dialects[Third-party dialects]
128+
|
129+
https://github.com/mongodb/mongo-hibernate/[MongoDB]: `org.mongodb:mongodb-hibernate:{version}`
130+
131+
https://github.com/GoogleCloudPlatform/google-cloud-spanner-hibernate[Google Spanner]: `com.google.cloud:google-cloud-spanner-hibernate-dialect:{version}`
132+
133+
Where `{version}` is the version of the third-party dialect compatible with the version of Hibernate ORM you are using. See the dialect's own documentation for more information. The https://hibernate.org/orm/releases/#compatibility-matrix[compatibility matrix on the Hibernate website] may also be of help.
125134
|===
126135

127136
You might also add the Hibernate {enhancer}[bytecode enhancer] to your
@@ -345,7 +354,7 @@ The properties you really do need to get started are these three:
345354
====
346355
Since Hibernate 6, you don't need to specify `hibernate.dialect`.
347356
The correct Hibernate SQL `Dialect` will be determined for you automatically.
348-
The only reason to specify this property is if you're using a custom user-written `Dialect` class.
357+
The only reason to specify this property is if you're using a custom user-written or link:{doc-dialect-url}#third-party-dialects[third-party] `Dialect` class.
349358
350359
Similarly, neither `hibernate.connection.driver_class` nor `jakarta.persistence.jdbc.driver` is needed when working with one of the supported databases.
351360
====

documentation/src/main/asciidoc/quickstart/guides/obtaining.adoc

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,25 @@ transitive dependencies based on the features being used or not.
6464
|hibernate-testing| A series of JUnit extensions for testing Hibernate ORM functionality
6565
|===
6666

67+
[cols="40m,~"]
68+
.Third-party modules
69+
|===
70+
// Yes, this is a full row containing asciidoc containing an admonition. I don't know have a better idea to add an admonition between a table's title and its content.
71+
2+a|
72+
[NOTE]
73+
====
74+
Third-party modules, and in particular link:{doc-dialect-url}#third-party-dialects[third-party dialects], are tested by their own authors,
75+
and may not be compatible with all versions of Hibernate ORM.
76+
77+
1. Check the module's own documentation to know more about its compatibility constraints.
78+
The https://hibernate.org/orm/releases/#compatibility-matrix[compatibility matrix on the Hibernate website] may also be of help.
79+
2. Submit any question or bug reports about these dialects to the dialect's authors: the Hibernate team cannot help.
80+
81+
====
82+
|`org.mongodb:mongodb-hibernate:{version}`| https://github.com/mongodb/mongo-hibernate/[MongoDB Extension for Hibernate ORM]
83+
|`com.google.cloud:google-cloud-spanner-hibernate-dialect:{version}`| https://github.com/GoogleCloudPlatform/google-cloud-spanner-hibernate[Google Cloud Spanner Dialect for Hibernate ORM]
84+
|===
85+
6786
[[platform]]
6887
=== Platform / BOM
6988

documentation/src/main/asciidoc/userguide/chapters/jdbc/Database_Access.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,6 @@ Hibernate abstracts over variations between dialects of SQL via the class `org.h
206206
- Additional community-supported ``Dialect``s are available in the separate module `hibernate-community-dialects`.
207207

208208
Starting with 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.
209-
(An exception is the case of custom user-written ``Dialect``s.)
209+
An exception is the case of custom or link:{doc-dialect-url}#third-party-dialects[third-party] ``Dialect``s.
210210

211211
NOTE: For information about available dialects and compatible database versions, see the link:{doc-dialect-url}[dialect guide].

documentation/src/main/asciidoc/userguide/chapters/portability/Portability.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ The first line of portability for Hibernate is the dialect, which is a specializ
1616
A dialect encapsulates all the differences in how Hibernate must communicate with a particular database to accomplish some task like getting a sequence value or structuring a SELECT query.
1717

1818
Hibernate bundles a wide range of dialects for many of the most popular databases: see the link:{doc-dialect-url}[dialect guide] for details.
19-
If you find that your particular database is not among them, it is not terribly difficult to write your own.
19+
If you find that your particular database is not among them,
20+
you can check link:{doc-dialect-url}#third-party-dialects[dialects implemented by third parties],
21+
and as a last resort it is not terribly difficult to write your own.
2022

2123
[[portability-dialectresolver]]
2224
=== Dialect resolution

0 commit comments

Comments
 (0)