@@ -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
69556963Sometimes 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
74187426directly translated to all other supported ORM tools. The later sections in this
74197427chapter 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
79978004This includes web containers such as Tomcat, stand-alone applications, and
79988005integration 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.
80048011See <<orm-jpa-hibernate, Native Hibernate setup for JPA interaction>> for details.
80058012
80068013The `LocalContainerEntityManagerFactoryBean` gives full control over
@@ -8370,10 +8377,9 @@ Spring provides dialects for the EclipseLink and Hibernate JPA implementations.
83708377See the <<orm-jpa-dialect, next section>> for details on the `JpaDialect` mechanism.
83718378
83728379NOTE: 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
84528457and a Hibernate `Session` handle natively is a JPA `EntityManager`.
84538458Spring's JPA support facilities automatically detect native Hibernate sessions.
0 commit comments