@@ -6617,7 +6617,7 @@ including error handling. It includes the following topics:
6617
6617
* <<r2dbc-DatabaseClient-examples-statement>>
6618
6618
* <<r2dbc-DatabaseClient-examples-query>>
6619
6619
* <<r2dbc-DatabaseClient-examples-update>>
6620
- * <<r2dbc-DatbaseClient -filter>>
6620
+ * <<r2dbc-DatabaseClient -filter>>
6621
6621
* <<r2dbc-auto-generated-keys>>
6622
6622
6623
6623
[[r2dbc-DatabaseClient]]
@@ -6949,7 +6949,15 @@ The following example shows a simpler variant using `IN` predicates:
6949
6949
.bind("tuples", arrayOf(35, 50))
6950
6950
----
6951
6951
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]]
6953
6961
===== Statement Filters
6954
6962
6955
6963
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
7418
7426
directly translated to all other supported ORM tools. The later sections in this
7419
7427
chapter then cover the other ORM technologies and show brief examples.
7420
7428
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.
7425
7432
7426
7433
7427
7434
[[orm-session-factory-setup]]
@@ -7997,10 +8004,10 @@ You can use this option for full JPA capabilities in a Spring-based application
7997
8004
This includes web containers such as Tomcat, stand-alone applications, and
7998
8005
integration tests with sophisticated persistence requirements.
7999
8006
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.
8004
8011
See <<orm-jpa-hibernate, Native Hibernate setup for JPA interaction>> for details.
8005
8012
8006
8013
The `LocalContainerEntityManagerFactoryBean` gives full control over
@@ -8370,10 +8377,9 @@ Spring provides dialects for the EclipseLink and Hibernate JPA implementations.
8370
8377
See the <<orm-jpa-dialect, next section>> for details on the `JpaDialect` mechanism.
8371
8378
8372
8379
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.
8377
8383
8378
8384
8379
8385
[[orm-jpa-dialect]]
@@ -8445,9 +8451,8 @@ less portable) but is set up for the server's JTA environment.
8445
8451
[[orm-jpa-hibernate]]
8446
8452
==== Native Hibernate Setup and Native Hibernate Transactions for JPA Interaction
8447
8453
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
8451
8456
`SessionFactory` natively implements JPA's `EntityManagerFactory` interface now
8452
8457
and a Hibernate `Session` handle natively is a JPA `EntityManager`.
8453
8458
Spring's JPA support facilities automatically detect native Hibernate sessions.
0 commit comments