Commit Graph

10276 Commits

Author SHA1 Message Date
Christian Beikov 33d601f146 HHH-16658 Propagate entity name uses from predicates and subqueries properly to the upper context 2023-05-25 10:23:42 +02:00
Gavin e1af41173b javadoc cleanups 2023-05-25 09:46:43 +02:00
Gavin 156fd51e5c improve javadoc code examples in XxxxLoadAccess 2023-05-25 00:42:24 +02:00
Gavin 76fa597d1b improvements to typesafety of NaturalIdLoadAccess
and clean up its jdoc and the jdoc of its friends
2023-05-25 00:17:59 +02:00
Gavin 5efa49f7d1 HHH-16600 @Basic(optional=false) on embeddable held by single table subclass
don't generate a 'not null' constraint for a field of an embeddable class if
it belongs to a subclass in single table inheritance hierarchy
2023-05-24 22:08:54 +02:00
Andrea Boriero 84547e8f4c HHH-16370 Using MapKey on ManyToMany leads to wrong insert SQL 2023-05-24 21:28:18 +02:00
Andrea Boriero d4d82e67fd HHH-16370 Add test for issue 2023-05-24 21:28:18 +02:00
Guenther Demetz 01f4c74d6b HHH-16558 - Detaching an entity removes natural-id cross-reference from shared cache 2023-05-24 11:33:20 -05:00
Gavin 2b27d98a89 HHH-16654 much more efficient implementation of default fetch profile 2023-05-24 18:14:10 +02:00
Jan Schatteman 35da6000fd HHH-16649 - This commit effectively reverts d8bf6499 (HHH-15910), in which static remove methods were added to the Hibernate class
The reason for this is that the methods in fact don't work, since the machinery behind
them just isn't there, nor has it even been.
The CollectionSizeTest that was modified to test these new methods was
incomplete and hid this fact.

Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-05-24 18:12:31 +02:00
Marco Belladelli 1c55a4766f HHH-16532 Fix NPE for @Any association fetches 2023-05-24 17:23:06 +02:00
Marco Belladelli a05e3cd2fa HHH-16532 Add test for issue 2023-05-24 17:23:06 +02:00
Marco Belladelli 7116dc9def HHH-16543 Correct check for polymorphic root common attributes 2023-05-24 17:17:46 +02:00
Marco Belladelli c6c24700a5 HHH-16543 Add test for issue 2023-05-24 17:17:46 +02:00
Gavin d3db740035 HHH-16360 fix schema update precision/scale handling 2023-05-24 16:50:21 +02:00
Sanne Grinovero 57cbaed2a9 HHH-16685 Avoid extreme cache misses on EntityPersister#implementsLifecycle() 2023-05-24 12:08:44 +01:00
Sanne Grinovero 5c60b632a1 HHH-16683 Micro optimisations for MappingMetamodelImpl.getEntityDescriptor 2023-05-24 11:58:49 +01:00
Gavin 1d30b0161f add nissing <p> to javadoc 2023-05-24 00:22:14 +02:00
Gavin 80feb108fb javadoc improvements 2023-05-24 00:14:44 +02:00
Gavin 7b3c77c0c3 introduce @View annotation 2023-05-24 00:14:44 +02:00
Andrea Boriero 2bebcf5e95 HHH-16669 Batch loading prevents throwing ObjectNotFoundException on initialization of non-existent enhanced entity 2023-05-23 20:43:20 +01:00
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 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 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 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 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 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 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
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 d9d5ea57d4 change the format of an exception msg 2023-05-20 17:07:28 +02:00
Gavin 60cec44467 some minor cleanups 2023-05-20 17:07:28 +02:00
Gavin fb28443081 raft of minor code cleanups 2023-05-20 12:48:19 +02:00
Gavin 4247f7b155 allow instantiation via non-public constructor in HQL 2023-05-20 12:09:17 +02:00
Gavin f673441ab3 HHH-16647 allow unqualified use of query result type in HQL instantiation 2023-05-20 12:09:17 +02:00
Gavin addd88000c improve error reporting in DynamicInstantiation stuff 2023-05-20 12:09:17 +02:00
Gavin f38de6217b HHH-16601 log second-level cache RegionFactory initiation 2023-05-20 09:27:35 +02:00
Gavin 689414e347 improve some error messages
also, tell StringType know how to convert ints and longs
2023-05-19 15:53:25 +02:00
Gavin 47d8a63f16 HHH-16638 allow @DialectOverride for @SQLInsert and friends 2023-05-19 12:36:25 +02:00
Andrea Boriero 62c05eadb9 HHH-16570 Batch fetch with FetchMode JOIN might lead to multiplication in OneToMany items 2023-05-19 11:41:40 +02:00
Andrea Boriero 87fc258109 HHH-16570 Add test for issue 2023-05-19 11:41:40 +02:00
Jarkko Hyöty 6c8bb03c93 HHH-16433 Fix forced follow on locking with order by 2023-05-19 11:31:49 +02:00
Gavin eafe6fd79b HHH-16637 add methods to SessionFactory for handling lifecycle of StatelessSession
also clean up the related code
2023-05-19 09:44:47 +02:00
Steve Ebersole 2ce3eef67a HHH-16626 - JPA hint for Session (EntityManager) level tenant-id 2023-05-18 15:05:54 -05:00
Sanne Grinovero 71a335dbe6 HHH-16630 Refactor code to avoid frequent lookup of Service MutationExecutorService 2023-05-18 14:38:11 +02:00
Sanne Grinovero 1c8e6fe462 HHH-16631 Avoid unnecessary INFO logging at bootstrap 2023-05-18 14:38:11 +02:00
Sanne Grinovero 46d66ec141 HHH-16625 Introduce a compilation unit among tests to serve as reminder about Quarkus requirements 2023-05-18 14:38:11 +02:00
Sanne Grinovero 67488980e0 HHH-16625 Introduce a compilation unit among tests to serve as reminder about Quarkus requirements 2023-05-18 12:17:55 +02:00
Sanne Grinovero a8ce9f615c HHH-16625 Expose enough state from MetadataImpl to allow cloning it 2023-05-18 12:17:55 +02:00
Gavin c5d7030741 fix misleading parameter name 2023-05-18 11:26:59 +02:00
Andrea Boriero 97ab6f6879 HHH-16569 Batch fetch leads to some collections to be wrongly initialized with empty due to wrong generated SQL 2023-05-18 09:41:18 +02:00
Andrea Boriero f4617621c6 HHH-16569 Add test for issue 2023-05-18 09:41:18 +02:00
Andrea Boriero aa93bac008 HHH-16573 NPE with embeddable element collection with updateable = false 2023-05-18 09:36:19 +02:00
Yoann Rodière b6721961dd HHH-16573 Reproduce NPE with embeddable element collection with updateable = false 2023-05-18 09:36:19 +02:00
Marco Belladelli a8fe62ebb3 HHH-16472 Allow null discriminators for treated left/full joins 2023-05-17 18:04:40 +02:00
Marco Belladelli 04684da054 HHH-16472 Add test for issue 2023-05-17 18:04:40 +02:00
Christian Beikov bee160e9f2 HHH-16541 Don't report supportsSkipLocked() for Sybase 2023-05-17 16:22:31 +02:00
Gavin 8fcd3a1f54 get rid of a stack trace
because some amazing geniuses on stackoverflow who know
much more than me about Hibernate are obsessing over this
DEBUG-level log message
2023-05-17 13:00:30 +02:00
Gavin a2f1ee3364 squash two warnings 2023-05-17 12:59:33 +02:00
Christian Beikov 7823b48a3a HHH-16541 Fix Sybase test issues and HSQLDB hanging 2023-05-17 11:41:18 +02:00
Christian Beikov 031098a248 HHH-16541 Don't consider uninitialized LazyTableGroup for follow-on locking emulation. Fix lock mode upgrade for follow-on locking 2023-05-16 12:58:25 -05:00
Christian Beikov 93d0121b9a HHH-16541 - (Jakarta EE 10 Platform TCK) jpa/core/lock/query/Client.java#getResultListTest1 test regression 2023-05-16 12:58:25 -05:00
Steve Ebersole 8f94719152 HHH-16538 - Remove BeanValidationIntegrator#BV_CHECK_CLASS 2023-05-16 12:36:32 -05:00
Gavin d43e89cc4a HHH-16604 partial fix to 'ENUM member of collection'
fix for the case of a fully-qualified name, i.e. org.package.Enum.ENUM
2023-05-15 16:54:47 +02:00
Marco Belladelli f310338198 HHH-16576 Fix column aliases when rendering query part with table reference aliasing emulation 2023-05-15 16:06:04 +02:00
Zhihong Yu 8e21d0eb54 HHH-16542 - Correct typo in javadoc 2023-05-15 15:56:08 +02:00
Gavin 7f361157e4 HHH-16603, HHH-9763 fix some tests:
- test that @Cache on a subclass throws instead of WARNs
- remove @FailureExpected because HHH-9763 is now fixed
- correct test with wrong expectation for SharedCacheMode.UNSPECIFIED
- fix test that did not realize ImmmutableMutabilityPlan requires Serializable
2023-05-15 15:11:12 +02:00
Gavin f709763dab HHH-16603, HHH-9763 fix some issues with interpreting @Cache/@Cacheable annotations
1. throw instead of logging a WARN if @Cache is on a subclass.
   I just lost 1/2 an hour of my life due to this being a WARN.
   Logging WARNs is a terrible way to report user error!

2. Fix interpretation of SharedCacheMode.UNSPECIFIED
2023-05-15 15:11:12 +02:00
Christian Beikov eb6e848de3 HHH-15726 Fix treat disjunction handling and improve pushdown 2023-05-15 10:07:08 +02:00
Marco Belladelli 4e9a643346 Fix several tests failing on Oracle 11 and some others on older dbs 2023-05-15 09:27:35 +02:00