Commit Graph

7803 Commits

Author SHA1 Message Date
Christian Beikov 1988ffa310 Support lateral joins by introducing a lateral flag in TableGroupJoin and add a FunctionTableReference for table valued functions 2021-12-18 05:12:36 -06:00
Christian Beikov b75277b421 Split TableReference class into interface and NamedTableReference implementation to allow QueryPartTableReference and ValuesTableReference to fit into the picture 2021-12-18 05:12:36 -06:00
Gavin King 70114d30ec treat integral types as equivalent for purposes of schema validation/update 2021-12-18 05:08:26 -06:00
Andrea Boriero d6bdca77f2 Fix Stack Overflow caused by EntitySelectFetchByUniqueKeyInitializer 2021-12-18 04:45:48 -06:00
Fabio Massimo Ercoli ecd9d2a193 Test eager cycles derived by 1to1 owner by contained 2021-12-18 04:45:48 -06:00
Steve Ebersole 335a4d62e3 HHH-14977 - @Where is broken in 6.0
`@Where` and `@Filter` fragments are now fully handled as AST - each fragment gets its own Predicate instance.

Some more work coming to clean up methods we no longer use which require the old String-manip approach.
2021-12-18 04:26:49 -06:00
Steve Ebersole 4c758b2d48 HHH-14977 - @Where is broken in 6.0
`@Where` and `@Filter` fragments are now fully handled as AST - each fragment gets its own Predicate instance.

Some more work coming to clean up methods we no longer use which require the old String-manip approach.
2021-12-17 19:09:09 -06:00
Steve Ebersole 1c5ec0612c HHH-14977 - @Where is broken in 6.0
`@Where` and `@Filter` fragments are now fully handled as AST - each fragment gets its own Predicate instance.

Some more work coming to clean up methods we no longer use which require the old String-manip approach.
2021-12-17 19:07:46 -06:00
Christian Beikov 9d75e6d620 Fix some wrong assignability checks 2021-12-17 18:30:26 +01:00
Andrea Boriero f765eb4a87 Fix issue with Hibernate proxy 2021-12-17 18:30:26 +01:00
Fabio Massimo Ercoli d845f4b066 Test load of polymorphic entities 2021-12-17 18:30:26 +01:00
Andrea Boriero 5626b075dc Fix instantiation of VirtualId 2021-12-17 18:29:53 +01:00
Christian Beikov c92a475892 Get rid of unnecessary lexer rules 2021-12-17 15:40:08 +01:00
Andrea Boriero 017d1a2dcd Reenable additional tests 2021-12-17 09:06:09 +01:00
Christian Beikov b75c2117b2 Fix resolving table references for discriminator path 2021-12-17 08:23:53 +01:00
Gavin King bc65526c77 clean up the Dialect-specific default property handling 2021-12-16 15:58:47 +01:00
Fabio Massimo Ercoli 28b8b33b88 Support multiload by single natural id 2021-12-15 10:52:43 -06:00
Fabio Massimo Ercoli 2814c05399 Test multiload on single event 2021-12-15 10:52:43 -06:00
Fabio Massimo Ercoli 647c2a923c Use single loader to load single instance on multiloading 2021-12-15 10:52:43 -06:00
Fabio Massimo Ercoli cef98f67a9 Test multiloading on partial cached entities 2021-12-15 10:52:43 -06:00
Steve Ebersole 579b3f0dcb HHH-14977 - @Where is broken in 6.0
Next iteration where `@Where` fragments generate AST one or more `WhereFilterPredicate` instances.

At the moment, `@Filter` fragments are collected together using the existing String-manipulation style and still collected into a single `FilterPredicate`.  Next step is to make that more AST-centric and hopefully get rid of the String-manip-based methods
2021-12-15 10:49:49 -06:00
Andrea Boriero a4b574e826 @FailureExpected annotation added to tests in orm 6 substituted with @NotImplementedYet 2021-12-15 09:56:07 +01:00
Gavin King bd9276d6d7 clean up version stuff in DB2i/z dialects 2021-12-15 08:56:50 +01:00
Gavin King e992b41756 clean up constructor model in Dialects
and fix strange model of versions on Maria/TiDB
2021-12-14 22:54:27 +01:00
Gavin King e2be0960fd let's not use LONGVARCHAR to mean two different things 2021-12-14 22:54:27 +01:00
Gavin King eb3bcdb94a reworked approach to Dialect column type customization 2021-12-14 22:54:27 +01:00
Steve Ebersole 103e5c658b HHH-14977 - @Where is broken in 6.0
simple fix hooking in to the existing String based building. working on a version that
uses the AST
2021-12-14 15:36:12 -06:00
Andrea Boriero d89b28e1a9 Re-enabled additional tests 2021-12-14 13:36:24 +01:00
Andrea Boriero 6ebceedf48 Fix Query#getParameters() returning an empty Set when the query has no parameters 2021-12-14 13:36:24 +01:00
Andrea Boriero ba558503a8 Fix thowing IllegalArgumentException when accessing procedure not registered parameters 2021-12-14 13:36:24 +01:00
Andrea Boriero a6ee855d29 Fix thowing IllegalArgumentException when accessing procedure not registered parameters 2021-12-14 13:36:24 +01:00
Andrea Boriero fa499dff94 Fix issue with ResultSetMapping resolution 2021-12-14 13:36:24 +01:00
Christian Beikov c4e7e2b3fe Fix support for dropping local temporary tables 2021-12-14 13:00:14 +01:00
Christian Beikov eecda61ceb Move more tests and fix subselect support 2021-12-14 13:00:14 +01:00
Ivaylo Mitrev b9814f5cef HHH-14948 Adapt contributed patch to 6.0 branch 2021-12-13 21:30:46 +00:00
Gavin King 1172943252 fix broken float type precision conversion
it is not the case that ln(10) = log_2(10)
2021-12-13 13:56:17 +01:00
Andrea Boriero 36be5cc3da Re-enabled additional tests 2021-12-13 13:44:36 +01:00
Steve Ebersole fcda293c5e HHH-14975 - Allow use of auto-applied AttributeConverter as native-query result or parameter 2021-12-12 15:47:57 -06:00
Steve Ebersole 38fa2aef75 HHH-13082 - Support specifying an AttributeConverter class as a @ColumnResult#type 2021-12-12 15:14:28 -06:00
Steve Ebersole bd784b6e90 Misc cleanup related to `MultiLoader` hierarchy 2021-12-12 12:40:34 -06:00
Steve Ebersole 8fef9c4de4 Test for https://hibernate.atlassian.net/browse/HHH-11784 2021-12-11 20:09:03 -06:00
Gavin 0ca7a659b0 "long" varchar/varbinary mappings
add Length class with useful constant values
well-defined mappings for "long" varchar/varbinary types
make LONGVARCHAR a synonym for VARCHAR with length=LONG32
make LONGVARBINARY a synonym for VARBINARY with length=LONG32
add Dialect.getMaxVarcharLength() + friends
make schema validator ignore the differences between string types
2021-12-11 21:27:01 +01:00
Steve Ebersole a35ad1905b HHH-10832 - Remove org.hibernate.property.access.spi.EnhancedGetterMethodImpl 2021-12-10 15:14:39 -06:00
Steve Ebersole a87157ddb8 fix Derby test failures 2021-12-10 14:42:56 -06:00
Steve Ebersole 64af4885b9 HHH-14950 - Support mapping of embeddables with no setters w/ custom instantiator
HHH-14964 - EmbeddableInitializer are called multiple times
2021-12-10 14:39:51 -06:00
Steve Ebersole 1e4f1fef44 HHH-14950 - Support mapping of embeddables with no setters w/ custom instantiator
HHH-14964 - EmbeddableInitializer are called multiple times

HHH-14950 works for the most part, but cannot be used "for real" because of HHH-14964
2021-12-10 13:40:06 -06:00
Steve Ebersole a2a6425b82 fix Oracle test failures 2021-12-10 13:36:53 -06:00
Fabio Massimo Ercoli c6ed830d82 Cache and expose column size 2021-12-10 10:08:07 -05:00
Andrea Boriero e08a7665c8 Fix load of entity with Date[] field 2021-12-10 10:21:40 +01:00
Fabio Massimo Ercoli 15121842f1 Test persist of array of dates 2021-12-10 10:21:40 +01:00
nathan.xu 62e55f3c3c HHH-14970 make use of new Java language features from v8 to v11 2021-12-09 21:26:04 -05:00
Gavin King 0bb647e62b revert to previous design with raw types
there is a problem with this approach: the user now gets unchecked
warnings since we've recently filled in the type args of the params
of some methods of Query and NativeQuery

but it's very hard to see how to fix the problem without breaking
compatibility
2021-12-09 21:25:31 -05:00
Gavin King a1e3f0cd6f fix some warnings and clean up some typing issues
this is a general cleanup of the Session + Query hierarchies
2021-12-09 21:25:31 -05:00
Fabio Massimo Ercoli b91944c09a Support statistics when criteria(s) are executed 2021-12-09 15:04:35 -05:00
Fabio Massimo Ercoli f05f002c22 Test statistics of criteria(s) executed 2021-12-09 15:04:35 -05:00
Steve Ebersole e6d4bc6cfa More documentation work 2021-12-09 13:03:34 -06:00
Gavin King b889375eb6 remove left-behind method createSQLQuery() from StatelessSession 2021-12-09 12:59:04 -05:00
Gavin King 6177210395 remove Session.disconnect()/reconnect()
this stuff is so old and so bad that it's not even worth deprecating
2021-12-09 12:38:55 -05:00
Gavin King 042bd47825 finally remove all remaining traces of Session.connection() 2021-12-09 12:38:55 -05:00
Gavin King 75fc936b95 improve the javadoc for AttributeBinder+AttributedBinderType 2021-12-09 18:31:31 +01:00
Gavin King b1ed206339 replace use of <br> with <p> in all the javadoc 2021-12-09 16:22:43 +01:00
Steve Ebersole 44fea07abf HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations
2021-12-09 07:45:44 -06:00
Steve Ebersole 703eaf22a0 HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations
2021-12-09 07:20:28 -06:00
Steve Ebersole 7a6cef5838 Miscellaneous
- Finished DialectVersion
- User Guide tidying
- User Guide section on AttributeBinder
2021-12-09 00:51:40 -06:00
Steve Ebersole fa4b76702c HHH-14950 - Support mapping of embeddables with no setters (assuming a custom instantiator or repo-strategy is used)
Tests;
Remove `ComponentTuplizer` and friends;
Remove `ComponentMetadata`
2021-12-08 21:17:05 -06:00
Steve Ebersole 09cc6d7b00 HHH-14950 - Support mapping of embeddables with no setters (assuming a custom instantiator or repo-strategy is used)
Tests
2021-12-08 17:42:13 -06:00
Steve Ebersole 37bc00e567 HHH-10558 - Add support for java.time.Year;
HHH-13393 - Add support for ZoneId

ZoneOffsetJavaTypeDescriptor was already added
2021-12-08 17:31:02 -06:00
Gavin King 61cba87096 fix the signature of Session.merge()
previously Session.merge() erased the generic type parameter
inherited from the supertype, obligating the client code to
perform a typecast
2021-12-08 17:01:21 -05:00
Steve Ebersole 942dd7283f DialectVersion
- rename `#isSince` to `#isSameOrAfter`
2021-12-08 15:54:50 -06:00
Steve Ebersole 10d759e139 Dialect version 2021-12-08 15:36:48 -06:00
Steve Ebersole d354d49ab1 added `DatabaseVersion#getCanonicalVersion` 2021-12-08 15:07:30 -06:00
Steve Ebersole 43206b02fc initial work on DatabaseVersion#isAfter 2021-12-08 15:07:30 -06:00
Steve Ebersole ad48a01e2c Fix PropertyBinder to use HCANNHelper to resolve meta-annotations 2021-12-08 14:54:13 -06:00
Steve Ebersole 848c9f0914 HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations;
HHH-14959 - Drop IdentifierGeneratorFactory as a Service;
HHH-14960 - Add @GeneratorType for better custom generator config;
HHH-14496 - Deprecate (or drop) IdGeneratorStrategyInterpreter;
HHH-14961 - Deprecate (or drop) IdentifierGeneratorStrategyProvider;
HHH-14962 - Delay actual creation of IdentifierGenerator instances as late as possible

Add `GenerationTypeStrategy` and `GenerationTypeStrategyRegistration`;
deprecate org.hibernate.jpa.spi.IdentifierGeneratorStrategyProvider
2021-12-08 14:35:09 -06:00
Steve Ebersole 3c97ac2077 HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations;
HHH-14959 - Drop IdentifierGeneratorFactory as a Service;
HHH-14960 - Add @GeneratorType for better custom generator config

Fixed CustomGeneratorTests failure on databases which do not support sequences
2021-12-08 14:35:09 -06:00
Steve Ebersole 1e8f6f9bbd HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations;
HHH-14959 - Drop IdentifierGeneratorFactory as a Service;
HHH-14960 - Add @GeneratorType for better custom generator config

org.hibernate.id.factory.spi.StandardGenerator
2021-12-08 14:35:09 -06:00
Steve Ebersole c5ad9e129e HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations;
HHH-14959 - Drop IdentifierGeneratorFactory as a Service;
HHH-14960 - Add @GeneratorType for better custom generator config
2021-12-08 14:35:09 -06:00
Steve Ebersole ce4f22f400 HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations;
HHH-14959 - Drop IdentifierGeneratorFactory as a Service;
HHH-14960 - Add @GeneratorType for better custom generator config
2021-12-08 14:35:09 -06:00
Steve Ebersole c394261508 HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations;
HHH-14959 - Drop IdentifierGeneratorFactory as a Service
2021-12-08 14:35:02 -06:00
Gavin King ce3644e81d add a wildcard to generic type
and slightly improve javadoc
2021-12-08 08:44:09 -05:00
Gavin King 13983e1449 detect the MultiTenantConnectionProvider when registered as a service
instead of looking at the property
2021-12-08 08:44:09 -05:00
Gavin King 6d43d62a5a fix test fallout from rebase
update test to jakarta package name
and refix moved tests
2021-12-08 08:44:09 -05:00
Gavin King 8f7e0c4c2f HHH-6054 introduce notion of a "root" tenant 2021-12-08 08:44:09 -05:00
Gavin King 47d0b1265f improve the test for tenant ids 2021-12-08 08:44:09 -05:00
Gavin King 341eb413f0 clean up PropertyBinder a bit 2021-12-08 08:44:09 -05:00
Gavin King 2a2bf17f8f redefine AttributeAccessor in terms of the new AttributeBinder API 2021-12-08 08:44:09 -05:00
Gavin King 5837a60e71 HHH-6054 introduce AttributeBinder and @AttributeBinderType
and introduce TenantIdBinder on top of this stuff
also make @TenantId imply non-null, immutable
2021-12-08 08:44:09 -05:00
Gavin King ea0dd35362 HHH-6054 improve error checking 2021-12-08 08:44:09 -05:00
Gavin King 8af548b52d HHH-6054 allow ValueGenerator to inspect current value of property
use this to throw exception from TenantIdGeneration
2021-12-08 08:44:09 -05:00
Gavin King 505bea6ffd HHH-6054 support for discriminator-based multitenancy
added the @TenantId annotation
also allow @TenantId @Formula
2021-12-08 08:44:09 -05:00
gavin b2e6965577 remove MultiTenancyStrategy
Use the existence of a MultiTenantConnectionProvider to infer that multitenancy is enabled.
2021-12-08 08:44:09 -05:00
Steve Ebersole 915da5228d HHH-14497 - Drop legacy id-generator settings;
HHH-14718 - Drop deprecated generator implementations
2021-12-07 11:12:44 -06:00
Andrea Boriero 189bc54dbd Fix EntityEntry loaded state for persistent arrays 2021-12-07 16:30:57 +01:00
Christian Beikov 6c4ec95182 * Cleanup temporary table handling in dialects
* Fix insert handling with respect to version, discriminator and generated identifier insertion
* Introduce SqmMultiTableInsertStrategy to handle multi-table inserts
* Introduce the notion of an "entity table" similar to the "id table" to handle multi-table insertions
* Implement table based and cte based multi-table insertion to support all dialects
* Implement identifier generator optimizer support for multi-table insert
* Fix validation of insert target paths against select item types
* Fix some DML validations
* Implement over-clause support in SQL AST
* Fix multi-valued filter parameter support
2021-12-07 15:54:01 +01:00
Andrea Boriero c959c7656c Fix IdentifiableType#getId(Class<Y> type) failing for primitive types 2021-12-07 12:49:10 +01:00
Yoann Rodière 37d3b66ce4 HHH-14922 Give precedence to default catalog/schema over implicit catalog/schema 2021-12-07 08:25:50 +01:00
Yoann Rodière 30e3aa4e7f HHH-14922 Delay applying the implicit catalog/schema until schema management tool or session factory creation
This is necessary if we want the default catalog/schema to take
precedence, since the default catalog/schema is applied late,
on schema management tool or session factory creation.
2021-12-07 08:25:50 +01:00
Yoann Rodière 8f1d1c43ce HHH-14922 Test behavior when setting both implicit catalog/schema and default catalog/schema 2021-12-07 08:25:50 +01:00
Yoann Rodière aafacbec47 HHH-14921 Test handling of default catalog and schema when not configured during metadata creation 2021-12-07 08:25:50 +01:00
Yoann Rodière 944c90061a HHH-14921 Test handling of default catalog and schema 2021-12-07 08:25:50 +01:00
Yoann Rodière 4d5306a82d HHH-14921 Delay determination of the default catalog/schema until schema management tool or session factory creation 2021-12-07 08:25:50 +01:00
Yoann Rodière 495bd51caa HHH-14921 Always use SqlStringGenerationContext for generation of SQL strings involving table/sequence names 2021-12-07 08:25:50 +01:00
Yoann Rodière b6f833441a HHH-14921 Delay generation of SQL strings by identifier generators until schema export or session factory creation 2021-12-07 08:25:50 +01:00
Yoann Rodière 0c644fa16d HHH-14921 Remove unused method PersistentIdentifierGenerator#generatorKey 2021-12-07 08:25:50 +01:00
Yoann Rodière 16524e2f67 HHH-14921 Remove a few unused SQL generation methods in identifier generators
They are getting in the way of changes related to the default schema
2021-12-07 08:25:50 +01:00
Yoann Rodière cc13379c77 HHH-14921 Clarify that org.hibernate.mapping.AuxiliaryDatabaseObject has been replaced with org.hibernate.boot.model.relational.AuxiliaryDatabaseObject 2021-12-07 08:25:50 +01:00
Yoann Rodière 012bcd1cfb HHH-14921 Clarify the ability of IdentifierGenerator to be configured and to register exportables 2021-12-07 08:25:50 +01:00
Christian Beikov 05d536d345 Polishing: fix wrong variable name 2021-12-06 20:29:59 +01:00
Christian Beikov e1a976bce0 HHH-14211 Switch to using oid for CLOB in PostgreSQL to avoid losing data after vacuumlo 2021-12-06 20:27:55 +01:00
Steve Ebersole 0f46ee2466 Tests for checking multiple execution of EmbeddableInitializers 2021-12-06 13:26:48 -06:00
Steve Ebersole 099dd55b94 Tests for checking multiple execution of EmbeddableInitializers 2021-12-06 12:30:10 -06:00
Andrea Boriero acc870ea14 Merge branch 'wip/6.0' of https://github.com/hibernate/hibernate-orm into wip/6.0 2021-12-06 17:46:12 +01:00
Andrea Boriero 74a395d744 Merge branch 'main' into wip/6.0 2021-12-06 17:39:07 +01:00
Christian Beikov bab32c3100 Small cleanup and add migration guide sections 2021-12-06 17:21:25 +01:00
Steve Ebersole 9028adc30e Clean up test logging (hibernate-core) 2021-12-06 10:12:25 -06:00
Christian Beikov 2d871d64f2 HHH-14897 Allow ordering with nulls first/last in JPA Criteria 2021-12-06 16:49:20 +01:00
Andrea Boriero 7dc70e9350 Fix ToOneAttributeMapping bidirectionalAttributeName value determination 2021-12-06 16:43:44 +01:00
Fabio Massimo Ercoli 71204a9e97 Test load contained in double containing 2021-12-06 16:43:44 +01:00
Steve Ebersole 087d486d6b Tests for debugging potential multiple calls to EmbeddableInstantiators 2021-12-04 13:53:10 -06:00
Steve Ebersole 9287b97cd3 HHH-14949 - Support @Access on @ElementCollection (for embeddable elements)
Fix
2021-12-03 15:32:13 -06:00
Steve Ebersole 86799d6c28 HHH-14949 - Support @Access on @ElementCollection (for embeddable elements)
Test
2021-12-03 15:32:13 -06:00
Steve Ebersole c190d37a57 initial work on DialectVersionDetails.isAfterDatabaseVersion 2021-12-02 21:36:52 -06:00
Steve Ebersole 9367561fe4 6.0 Beta2 2021-12-02 16:46:09 -06:00
Steve Ebersole 8203da2de1 Fix EnhancedProxy with Embeddable and Lazy BasicAttribute
- added log message when this condition occurs
- tried adding a `LoggerInspectionRule` based assertion to the test, but found that that rule is unfortunately very dependent on the message actually being logged
2021-12-02 15:44:17 -06:00
Fabio Massimo Ercoli 9f155a95ab Fix EnhancedProxy with Embeddable and Lazy BasicAttribute 2021-12-02 15:44:17 -06:00
Jan Schatteman 69cd716e37
Revert deprecations on main (#4412)
* Revert "HHH-14857 - Deprecations in preparation for 6"

This reverts commit 91e29358be.

* Revert "HHH-14857 - Deprecations in preparation for 6"

This reverts commit e4b56b9271.
2021-12-02 22:06:01 +01:00
Steve Ebersole ae25b651ca HHH-14885 - New composite user-type
HHH-14951 - Add @EmbeddableRepresentationStrategy

Prep work for `@EmbeddableRepresentationStrategy` - mostly move things from spi package to api, generally all marked `@Incubating`
2021-12-02 14:49:23 -06:00
Steve Ebersole e06a3dcdbc HHH-14885 - New composite user-type
HHH-14950 - Support mapping of embeddables with no setters (assuming a custom instantiator or repo-strategy is used)

Tests illustrating that HHH-14950 does indeed happen
2021-12-02 12:49:16 -06:00
Steve Ebersole 4b69854b9c HHH-14885 - New composite user-type
Initial work on interface-based embeddables with custom instantiator
2021-12-02 12:42:14 -06:00
Steve Ebersole 8339dffb88 HHH-14885 - New composite user-type
Initial work on interface-based embeddables
2021-12-02 06:52:22 -06:00
Christian Beikov 4cdc1c24fa Cleanup some model part APIs 2021-12-02 13:20:47 +01:00
Christian Beikov 47416b9e24 Fixup review comments 2021-12-02 13:17:53 +01:00
Andrea Boriero 9392b94ee7 Fix MatchingIdSelectionHelper#selectMatchingIds 2021-12-02 13:17:53 +01:00
Andrea Boriero b436392167 Re-enable additional tests 2021-12-02 13:17:53 +01:00
Andrea Boriero 7fa5d45175 Fix resolving id columns for NativeQuery with inplicit joins and aliases 2021-12-02 13:17:53 +01:00
Andrea Boriero 9bd5360bf2 Re-enabled additional tests 2021-12-02 13:17:53 +01:00
Andrea Boriero 9ef99082e1 Re-enabled additional tests 2021-12-02 13:17:53 +01:00
Andrea Boriero 0fd83cf649 Fix resolving id columns for NativeQuery with inplicit joins and aliases 2021-12-02 13:17:53 +01:00
Andrea Boriero 91cc3d8d51 Re-enabled additional tests 2021-12-02 13:17:53 +01:00
Andrea Boriero 16460cf3ab Re-enable additional tests 2021-12-02 13:17:53 +01:00
Fabio Massimo Ercoli 430071027c Avoid to recreate the DomainParameterXref twice 2021-12-02 12:53:57 +01:00
Fabio Massimo Ercoli 427204910c Cache only immutable part of HqlInterpretation
So that it can be reused safely from different threads
2021-12-02 12:53:57 +01:00
Fabio Massimo Ercoli 8c369f1998 Test concurrent queries with multiple params 2021-12-02 12:53:57 +01:00
Andrea Boriero 8d9ce9cd0e Fix test failures for MySql, Derby and Sybase 2021-12-02 11:35:47 +01:00
Steve Ebersole 9137b9e79a HHH-14885 - New composite user-type
`@EmbeddableInstantiatorRegistration`
2021-12-01 20:47:14 -06:00
Steve Ebersole 61d178ef1b HHH-14885 - New composite user-type
`@EmbeddableInstantiatorRegistration`
2021-12-01 18:16:29 -06:00
Steve Ebersole 924c2b29c3 HHH-14885 - New composite user-type
Working support for `@EmbeddableInstantiator` on either the embedded site or on the embeddable class.
2021-12-01 17:35:43 -06:00
Steve Ebersole 8ab27a0ff0 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
- shared `#finishInitialization` handling for `VirtualIdEmbeddable` and `IdClassEmbeddable`
      note: was not yet able to get that working with `EmbeddableMappingType`
  - clean up ComponentType, esp wrt its use of ComponentTuplizer

Still need to
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 13:48:51 -06:00
Steve Ebersole 55bfc59db1 fix gradle deprecations 2021-12-01 11:50:36 -06:00
Sanne Grinovero 334aeb1349 HHH-14946 Upgrading base requirements to Java 11 2021-12-01 17:34:28 +00:00
Steve Ebersole dc744844e4 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
- Clean up Component Type, removing as many calls to its tuplizer as possible atm
- Clean up ManagedMappingType, EntityPersister, etc - mainly work around getting and setting value(s)

Still need to
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
  - clean up ComponentType, esp wrt its use of ComponentTuplizer
2021-12-01 11:33:03 -06:00
Steve Ebersole b23c2f48c1 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
- Clean up Component Type, removing as many calls to its tuplizer as possible atm
- Clean up ManagedMappingType, EntityPersister, etc - mainly work around getting and setting value(s)

Still need to
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
  - clean up ComponentType, esp wrt its use of ComponentTuplizer
2021-12-01 11:33:03 -06:00
Steve Ebersole eb5afb0427 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Move all component instantiations to use the new mapping model EmbeddableInstantiator

Still need to
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
  - clean up ComponentType, esp wrt its use of ComponentTuplizer
2021-12-01 11:33:03 -06:00
Steve Ebersole 5b44aa5d44 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
EmbeddableInitializer fully uses EmbeddableInstantiator and value injection

Still need to
  - integrate EmbeddableInstantiator work (ComponentType/ComponentTuplizer)
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole a9fce4b69d Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
EmbeddableInitializer fully uses EmbeddableInstantiator and value injection

Still need to
  - integrate EmbeddableInstantiator work (ComponentType/ComponentTuplizer)
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole 82d884d65c Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Prep work for EmbeddableInstantiator - initializer

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole 42d1fcca19 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Prep work for EmbeddableInstantiator - initializer

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole 142299e7a8 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Prep work for EmbeddableInstantiator - initializer

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole 29ed0a0566 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Prep work for EmbeddableInstantiator - initializer

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole 01c6b144ce Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Prep work for EmbeddableInstantiator - initializer

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole 185bcd43aa Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
Prep work for EmbeddableInstantiator - initializer

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
  - ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
2021-12-01 11:33:03 -06:00
Steve Ebersole d506bb379c Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable` + instantiators
More clean-up (Tuplizers!!)

Mostly EntityTuplizer in this commit

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
2021-12-01 11:33:02 -06:00
Steve Ebersole bb2b0a6c47 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable`
Clean-up

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
2021-12-01 11:33:02 -06:00
Steve Ebersole 0322d8fa84 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable`
EmbeddableInstantiator

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
2021-12-01 11:33:02 -06:00
Steve Ebersole 546a635be9 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable`
Added new form of `SqlExpressionResolver#createColumnReferenceKey`

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
2021-12-01 11:33:02 -06:00
Steve Ebersole 86e8b2751c Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable`
This 3rd commit cleans up some code

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
2021-12-01 11:33:02 -06:00
Steve Ebersole dd4f380ea9 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable`
This second commit renames `EmbeddableMappingType`

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
  - share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
2021-12-01 11:33:02 -06:00
Steve Ebersole 524b46b246 Introduce `VirtualIdEmbeddable` and `IdClassEmbeddable`
This initial commit is scaled back - it only introduces the embeddable forms and supporting changes.

Still need to
  - integrate EmbeddableInstantiator work
  - integrate embedded forms.  `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form.  But `IdClassEmbedded` should really be integrated
  - integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
2021-12-01 11:33:02 -06:00
Sanne Grinovero 25d8fda12c Improve reliability of ProposedGeneratedTests 2021-12-01 15:53:28 +00:00
Andrea Boriero 46857f456a Fix SimpleNaturalIdLoader#resolveIdToNaturalId() 2021-12-01 13:17:09 +01:00
Andrea Boriero df0479951c Fix o.h.Interceptor#onSave call 2021-12-01 13:16:37 +01:00
Andrea Boriero b4cfe7e54a Fix readOnly value and Query#scroll() 2021-11-29 13:57:26 +01:00
Andrea Boriero 0fbfc30eaa Fix refresh of a Proxy instance 2021-11-29 13:57:26 +01:00
Chris Cranford 9124fd84b4 Fix HBM joined-subclass key order by sorting 2021-11-27 02:36:29 -05:00
Andrea Boriero f83fb54614 Fix TypeDefinitionBinder registering TypeDefinition 2021-11-26 14:49:38 +01:00
Andrea Boriero 1f541170c7 Re-enable additional tests 2021-11-26 10:08:14 +01:00
Andrea Boriero 0e1822e5dd Re-enabled additional tests 2021-11-26 10:08:14 +01:00
Andrea Boriero e7992a35d4 Re-enable additional tests 2021-11-26 10:08:14 +01:00
Jan Schatteman ce6850bdfa Remove 'statementInspectorClass' from @Jpa and refactor its usage to use
a @SettingProvider

Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2021-11-25 18:42:32 +01:00
Andrea Boriero cc43aaefb9 Re-enable additional tests 2021-11-25 14:03:04 +01:00
Andrea Boriero 492d391e73 Re-enable additional tests 2021-11-25 14:03:04 +01:00
Andrea Boriero 9766b05eba Re-enable additional tests 2021-11-25 14:03:04 +01:00
Andrea Boriero 36fa3fca8e Re-enabled stream tests 2021-11-25 14:03:04 +01:00
Andrea Boriero acd78256eb Fix statistics for native query 2021-11-25 14:03:04 +01:00
Andrea Boriero 92e8436014 Re-enable additional tests 2021-11-25 14:03:04 +01:00
Andrea Boriero 7f574f4a2a Merge branch 'wip/6.0_merge' into wip/6.0 2021-11-25 09:54:48 +01:00
Christian Beikov cbcec73d4f * Handle quoted identifiers in HQL and the Ordering parser
* Switch from the "expression" to "expressionOrPredicate" rule in the HQL grammar where it makes sense as required by some HQL tests
* Cleanup parser rule ordering to allow more keywords in the identifier rule
* Implement literal support for Ordering parser
* Add special AvgFunction as needed by H2, HSQL, DB2, SQL Server and Sybase that casts arguments to double if necessary
* Fix wrong deduplication of order by fragments in case a plural attribute is fetched multiple times
* Implement support for de-referencing any-valued mappings in HQL
* Avoid unnecessary entity subtypes in polymorphic splitted queries if a base type also matches the requested type
* Implement pagination support for polymorphic splitted queries
* Cleanup path part resolving by removing lots of duplicate code
* Aligh HQL parsing expectations to the expected behavior of 5.x
* Add method to `JavaType` that allows determining if a type is can be widened to another which is used for arithmetic type resolving
* Implement validations for fetch owner checking
* Fix issues with the id table creation due to lacking column lengths in the column DDL type
* Fix issues and add some optimizations related to multi-table delete handling
* Add the notion of a special "implicit" alias to avoid generating a unique alias for unaliased or implicit HQL joins
* Properly implement multiple bag fetch validation
* Make sure filter predicates are applied for all plural attribute joins
* Fix some issues with undecidable parameter type inference
* Fix some issues with negated SQM predicates not being converted to the proper SQL AST predicates
* Fix issues with qualifying DML target referencing columns
* Fix `is null` semantics for tuples referring to embeddable types
* Capture necessary details from JdbcValuesMetadata in the cached data to avoid executing a query on cache hit when types should be inferred
* Get rid of special CollectionPropertyNames and writeup a migration guide section for the replacements
2021-11-25 08:51:51 +01:00
Andrea Boriero bdc1e4103d Merge remote-tracking branch 'upstream/main' into wip/6.0_merge 2021-11-24 16:48:43 +01:00
Andrea Boriero d21db9e807 Fix loading OnetoOne self referencing entity 2021-11-24 16:35:23 +01:00
Marius Klein f604e8fa33 HHH-14937 SybaseASE15 supports schemas and catalogs 2021-11-23 11:28:01 +01:00
Christian Beikov eaea919cf5 Fix HBM based model binding wrt id-classes and move the last derived id tests 2021-11-19 16:29:56 +01:00
Christian Beikov b8429bca42 Introduce a proper EmbeddableMappingType for id-class and handle id-class uses uniformly 2021-11-19 16:29:56 +01:00
Andrea Boriero 971f58e335 Expose virtual id types in JPA metamodel 2021-11-19 16:29:56 +01:00
Andrea Boriero 57f7e59e14 Fix SqlResultSetMappingDescriptor generating ResultMemento for Embeddable attributes 2021-11-19 16:29:56 +01:00
Andrea Boriero a771d035c9 Fix null embeddable with circular reference 2021-11-19 16:29:56 +01:00
Andrea Boriero b520752c8d Fix issue with class used as IdClass and also embedded in another IdClass 2021-11-19 16:29:56 +01:00
Andrea Boriero 07a314b663 Fix EmbeddableMappingType trowing exception wehen the attributeMapping is an instance of EmbeddedAttributeMapping 2021-11-19 16:29:56 +01:00
Andrea Boriero 55b1ec48f1 Fix MappingModelCreationHelper#interpretToOneKeyDescriptor() throwing NotYetImplementedFor6Exception for NonAggregateIdentifier 2021-11-19 16:29:56 +01:00
Andrea Boriero d33200b309 Fix using wrong vale mapping for paramter binging with EntityCollectionPart 2021-11-19 16:29:56 +01:00
Andrea Boriero 411355852a Fix PersistenceUnitUtilImpl#getIdentifier() throws NPE for NonAggregateIdentifier 2021-11-19 16:29:56 +01:00