Skip to content

Commit d7f1813

Browse files
committed
R2DBC and Hibernate documentation revision
Closes gh-25860 Closes gh-25533
1 parent ada255d commit d7f1813

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

src/docs/asciidoc/data-access.adoc

+22-17
Original file line numberDiff line numberDiff line change
@@ -6617,7 +6617,7 @@ including error handling. It includes the following topics:
66176617
* <<r2dbc-DatabaseClient-examples-statement>>
66186618
* <<r2dbc-DatabaseClient-examples-query>>
66196619
* <<r2dbc-DatabaseClient-examples-update>>
6620-
* <<r2dbc-DatbaseClient-filter>>
6620+
* <<r2dbc-DatabaseClient-filter>>
66216621
* <<r2dbc-auto-generated-keys>>
66226622

66236623
[[r2dbc-DatabaseClient]]
@@ -6949,7 +6949,15 @@ The following example shows a simpler variant using `IN` predicates:
69496949
.bind("tuples", arrayOf(35, 50))
69506950
----
69516951

6952-
[[r2dbc-DatbaseClient-filter]]
6952+
NOTE: R2DBC itself does not support Collection-like values. Nevertheless,
6953+
expanding a given `List` in the example above works for named parameters
6954+
in Spring's R2DBC support, e.g. for use in `IN` clauses as shown above.
6955+
However, inserting or updating array-typed columns (e.g. in Postgres)
6956+
requires an array type that is supported by the underlying R2DBC driver:
6957+
typically a Java array, e.g. `String[]` to update a `text[]` column.
6958+
Do not pass `Collection<String>` or the like as an array parameter.
6959+
6960+
[[r2dbc-DatabaseClient-filter]]
69536961
===== Statement Filters
69546962

69556963
Sometimes it you need to fine-tune options on the actual `Statement`
@@ -7418,10 +7426,9 @@ of DAO implementations and transaction demarcation. Most of these patterns can b
74187426
directly translated to all other supported ORM tools. The later sections in this
74197427
chapter then cover the other ORM technologies and show brief examples.
74207428

7421-
NOTE: As of Spring Framework 5.0, Spring requires Hibernate ORM 4.3 or later for JPA support
7422-
and even Hibernate ORM 5.0+ for programming against the native Hibernate Session API.
7423-
Note that the Hibernate team does not maintain any versions prior to 5.1 anymore and
7424-
is likely to focus on 5.3+ exclusively soon.
7429+
NOTE: As of Spring Framework 5.3, Spring requires Hibernate ORM 5.2+ for Spring's
7430+
`HibernateJpaVendorAdapter` as well as for a native Hibernate `SessionFactory` setup.
7431+
Is is strongly recommended to go with Hibernate ORM 5.4 for a newly started application.
74257432

74267433

74277434
[[orm-session-factory-setup]]
@@ -7997,10 +8004,10 @@ You can use this option for full JPA capabilities in a Spring-based application
79978004
This includes web containers such as Tomcat, stand-alone applications, and
79988005
integration tests with sophisticated persistence requirements.
79998006

8000-
NOTE: If you want to specifically configure a Hibernate setup, an immediate alternative is
8001-
to go with Hibernate 5.2 or 5.3 and set up a native Hibernate `LocalSessionFactoryBean`
8002-
instead of a plain JPA `LocalContainerEntityManagerFactoryBean`, letting it interact
8003-
with JPA access code as well as native Hibernate access code.
8007+
NOTE: If you want to specifically configure a Hibernate setup, an immediate alternative
8008+
is to set up a native Hibernate `LocalSessionFactoryBean` instead of a plain JPA
8009+
`LocalContainerEntityManagerFactoryBean`, letting it interact with JPA access code
8010+
as well as native Hibernate access code.
80048011
See <<orm-jpa-hibernate, Native Hibernate setup for JPA interaction>> for details.
80058012

80068013
The `LocalContainerEntityManagerFactoryBean` gives full control over
@@ -8370,10 +8377,9 @@ Spring provides dialects for the EclipseLink and Hibernate JPA implementations.
83708377
See the <<orm-jpa-dialect, next section>> for details on the `JpaDialect` mechanism.
83718378

83728379
NOTE: As an immediate alternative, Spring's native `HibernateTransactionManager` is capable
8373-
of interacting with JPA access code as of Spring Framework 5.1 and Hibernate 5.2/5.3,
8374-
adapting to several Hibernate specifics and providing JDBC interaction.
8375-
This makes particular sense in combination with `LocalSessionFactoryBean` setup.
8376-
See <<orm-jpa-hibernate, Native Hibernate Setup for JPA Interaction>> for details.
8380+
of interacting with JPA access code, adapting to several Hibernate specifics and providing
8381+
JDBC interaction. This makes particular sense in combination with `LocalSessionFactoryBean`
8382+
setup. See <<orm-jpa-hibernate, Native Hibernate Setup for JPA Interaction>> for details.
83778383

83788384

83798385
[[orm-jpa-dialect]]
@@ -8445,9 +8451,8 @@ less portable) but is set up for the server's JTA environment.
84458451
[[orm-jpa-hibernate]]
84468452
==== Native Hibernate Setup and Native Hibernate Transactions for JPA Interaction
84478453

8448-
As of Spring Framework 5.1 and Hibernate 5.2/5.3, a native `LocalSessionFactoryBean`
8449-
setup in combination with `HibernateTransactionManager` allows for interaction with
8450-
`@PersistenceContext` and other JPA access code. A Hibernate
8454+
A native `LocalSessionFactoryBean` setup in combination with `HibernateTransactionManager`
8455+
allows for interaction with `@PersistenceContext` and other JPA access code. A Hibernate
84518456
`SessionFactory` natively implements JPA's `EntityManagerFactory` interface now
84528457
and a Hibernate `Session` handle natively is a JPA `EntityManager`.
84538458
Spring's JPA support facilities automatically detect native Hibernate sessions.

0 commit comments

Comments
 (0)