Commit Graph

16233 Commits

Author SHA1 Message Date
Andrea Boriero f9954aa873 HHH-16669 Test for issue: when batch loading not throwing ObjectNotFoundException on proxy init 2023-05-23 20:43:20 +01:00
Sanne Grinovero bf82d53516 HHH-16679 Avoid type pollution problems on iterations of List<JdbcParameter> 2023-05-23 19:41:52 +01:00
Gavin f54ff9de3e remove redundant @SuppressWarnings 2023-05-23 17:34:34 +02:00
Gavin f330c85c16 change the names in doc because Steve didn't like fetching()/loading() 2023-05-23 17:34:34 +02:00
Gavin dc1fe43f52 change the names because Steve didn't like fetching()/loading() 2023-05-23 17:34:34 +02:00
Gavin d424957cac two API improvements to EntityGraphs
1. make fetch/load graph distinction clearer in the XxxxLoadAccess APIs
2. addPluralSubgraph(), which is missing in JPA
2023-05-23 17:34:34 +02:00
Marco Belladelli e84dfb2a8c HHH-16565 Clear PC entry for 2LC inconsistent return class entities 2023-05-23 17:33:04 +02:00
Marco Belladelli f0affe7804 HHH-16565 Add test for issue 2023-05-23 17:33:04 +02:00
Gavin 2e502215d5 update the docs with new @FetchProfileOverride
and the "default" profile
2023-05-23 16:50:25 +02:00
Gavin 66d67795a3 HHH-16666 fix test 2023-05-23 16:50:25 +02:00
Gavin 176abffdd5 HHH-16654 introduce a "default" fetch profile with eager to-ones in it
also, make the query translator always respect the fetch type specified
in the fetch profile (previously it would ignore it for statically-EAGER
many-to-ones, which was inconsistent and made little sense)
2023-05-23 16:50:25 +02:00
Gavin b3e27788fa fix bug in query plan cache where fetch profiles were not considered 2023-05-23 16:50:25 +02:00
Gavin ba0221da36 HHH-16666 introduce @FetchProfileOverride instead of reusing @Fetch
There are differences in the implied timing, so this is more consistent
2023-05-23 16:50:25 +02:00
Gavin c636c83d7e HHH-16651 cleaner separation of "fetch method" vs "fetch timing" 2023-05-23 16:50:25 +02:00
Christian Beikov 7ed0241dc5 HHH-16676 Handle treat expressions in toHqlString 2023-05-23 13:40:46 +02:00
Gavin e79cbe8669 disable a test on Oracle, because it fails on new JDBC drivers
cc @beikov
2023-05-23 11:05:43 +01:00
Gavin 201c08a8b7 upgrade all the jdbc drivers 2023-05-23 11:05:43 +01:00
Gavin 9cd1d788ea use Oracle driver odbc11 since we now depend on Java 11 2023-05-23 11:05:43 +01:00
Gavin 3be2dc5978 HHH-16651 promote new operations from SessionBuilder to Session
setFetchBatchSize() and setSubselectFetchEnabled()
2023-05-23 07:51:02 +02:00
Gavin 6215a8ef42 add some additional hints for EM.setProperty() 2023-05-23 07:51:02 +02:00
Gavin bebde84992 add logo to PDF 2023-05-22 23:48:09 +02:00
Gavin 22a5cbb0a8 lots of new info on fetching and caching
- proper coverage of subselect fetching
- how to handle reference data
2023-05-22 23:43:23 +02:00
Gavin 9c90bd505d HHH-16651 clean up API of the engine.profile package
FetchProfile should really be immutable so lets move toward that
2023-05-22 23:43:23 +02:00
Gavin ad9fae044d HHH-16651 fix test 2023-05-22 23:43:23 +02:00
Gavin a5ae1a479a HHH-16651 support all fetch styles in fetch profiles
Finally, after all these years!
2023-05-22 23:43:23 +02:00
Christian Beikov 4795b94f68 HHH-16657 Propagate PROJECTION entity name use from subquery to outer table group 2023-05-22 18:53:09 +02:00
Christian Beikov 7f5ebc207e HHH-16655 Fix parse error for HQL window frames 2023-05-22 18:53:09 +02:00
Christian Beikov f49bce8bde HHH-16656 Register ranking window functions for H2 1.4.200 2023-05-22 18:53:09 +02:00
Gavin e12b82033e HHH-16666 document fetch profiles now they are nicer to use 2023-05-22 18:45:41 +02:00
Gavin 36a77785e8 HHH-16666 give @FetchOverride.mode a default (the only supported value!)
Talk about low-hanging fruit!
2023-05-22 18:45:41 +02:00
Gavin f2dbe7a9cb HHH-16666 allow fetch profiles to be defined using the @Fetch annotation
1. You may now declare an empty named @FetchProfile, and
2. add associations to it using @Fetch.

Note that @Fetch becomes a repeatable annotation.
2023-05-22 18:45:41 +02:00
Gavin 2daeadd449 share more code between the batch loaders 2023-05-22 18:45:28 +02:00
Gavin 2926d1781d trim array holding batch of ids before passing to JDBC
before this, the array length was the batch size, and
was padded with nulls, which isn't great if you have
a large batch size, I suppose
2023-05-22 18:45:28 +02:00
Gavin f2017cd5a0 HHH-16651 improve probability of getting cached loader 2023-05-22 18:45:28 +02:00
Gavin 8bf5bb0d98 HHH-16651 change a test since we don't use array batch loader for one id anymore 2023-05-22 18:45:28 +02:00
Gavin 475aefb434 HHH-16651 use single id loader when there is one id in the batch 2023-05-22 18:45:28 +02:00
Gavin 97b653aaec HHH-16651 ooops, fix condition on affected-by 2023-05-22 18:45:28 +02:00
Gavin c2ceb4c279 HHH-16651 get rid of Preparable interface
I can't figure out why it's required but perhaps I'm missing something
2023-05-22 18:45:28 +02:00
Gavin bbd8df93ca HHH-16651 make persisters return adapted loaders for session batch size 2023-05-22 18:45:28 +02:00
Gavin 3097c47b3d HHH-16659 add Query.setEntityGraph()
and turn a log message into an IllegalArgumentException
2023-05-22 18:45:28 +02:00
Gavin e102dea3be lay foundation for making batch/subselect fetching per-session
still need to fix caching of loaders in persisters
2023-05-22 18:45:28 +02:00
Gavin ed213d7cdf add applySubselectFetchEnabled() to builder
improve some Javadoc
2023-05-22 18:45:28 +02:00
Gavin 12e1a97e50 update the doc to show how to enable subselects 2023-05-22 18:45:28 +02:00
Gavin eb959722f9 HHH-16651 introduce new setting to globally enable the use of subselect fetching
and lay foundation for making this settable on the Session
2023-05-22 18:45:28 +02:00
Felix 2b0bc61873 HHH-16652 fix the broken link: hql-string-functions 2023-05-22 13:42:35 +02:00
Christian Beikov fa15bba8c8 HHH-16663 Fix TCK failure due to wrong refactoring in schema management Action enum 2023-05-22 13:32:19 +02:00
Gavin 4ebc24daa0 HHH-16650 add test 2023-05-22 10:07:27 +02:00
Gavin eded6e8ff9 HHH-16650 fix for native queries with "unknown" numeric types on Oracle
Oracle reports FLOAT/DOUBLE PRECISION as NUMBER, which is wrong. The
workaround was to look at the scale, which it reports as -127 for
FLOAT. But certain other expression also get scale -127, and this
could cause truncation of least-significant digits when we read them
into a Java Double.
2023-05-22 10:07:27 +02:00
Gavin 7aa1883c6d more info about caching (Caffeine) and logging 2023-05-20 18:27:26 +02:00
Gavin a2e463801b improve discussion of fetching + new section on Statistics 2023-05-20 17:09:42 +02:00