Commit Graph

9598 Commits

Author SHA1 Message Date
Steve Ebersole a552a73632 HHH-16006 - Implement an "additional mapping" contributor SPI 2023-01-19 16:30:46 -06:00
Davide D'Alto e03b3f051a
HHH-16059 Add getters to CteInsertHandler
And the relax scope of a private method.

This way Hibernate Reactive can access them.
2023-01-19 12:28:40 +01:00
Davide D'Alto e2baceb382
HHH-16059 Add getters and relax scopes
extending CteInsertStrategy and CteMutationStrategy
2023-01-19 11:00:38 +01:00
Jan Schatteman f53a29ab12 HHH-16020 - Fix for incorrect offset parameter index and add test for
issue

Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-01-18 19:59:07 +01:00
Sanne Grinovero 67dc1ed835 HHH-16052 EntityKey and CollectionKey equality optimisation 2023-01-17 16:47:22 +00:00
Gavin cf65a2d275 improve javadoc for hibernate.hbm2ddl.import_files_sql_extractor 2023-01-17 00:43:52 +01:00
Sanne Grinovero 84a652bfe7 HHH-16051 Avoid stateful lambdas on invocations of Stack#findCurrentFirst 2023-01-16 21:39:15 +00:00
Sanne Grinovero c570b11dcd HHH-16047 Allow reusing of FlushEntityEvent instances 2023-01-16 15:11:15 +00:00
Sanne Grinovero 9f88b56099 HHH-16046 Improve memory safety of mutations in EventListenerGroupImpl
Also avoid for method listeners() to allocate a new List at each use;
 this method was deprecated but it appears it’s still being used in
 various event processors, which is being flagged as a performance issue.
2023-01-15 11:31:27 +00:00
Sanne Grinovero 48df4e15aa HHH-16046 EventListener iterations should avoid using EventListenerGroup#listeners when possible 2023-01-15 11:31:27 +00:00
Gavin a1d43adad4 Oracle does support offsets/zones in datetime literals
+ some minor cleanups
2023-01-14 15:14:04 +01:00
Gavin 6a238adc6c tolerate 'local' keyword in date and time literals
no reason to choke on this, doesn't seem to be ambiguous
2023-01-14 15:14:04 +01:00
Gavin 4a87bc4bb8 use custom-rendered datetime literals on MySQL instead of JDBC escapes 2023-01-14 15:14:04 +01:00
Gavin 2aece6fb95 HHH-16035 use custom-rendered datetime literals on DB2 instad of JDBC escapes
The JDBC escapes didn't play so well with duration arithmetic.
2023-01-14 15:14:04 +01:00
Gavin 8f29ae95c9 more javadoc for Dialect.getFractionalSecondPrecisionInNanos() 2023-01-14 15:14:04 +01:00
Gavin 56774f80d7 fix handling of typestamp arithmetic on Sybase
this was a total inconsistent mess that made no sense
2023-01-14 15:14:04 +01:00
Gavin c852d1ca0d more HQL duration tests 2023-01-14 15:14:04 +01:00
Gavin a9414fa6be disable test for no-longer-allowed literal syntax
I had to disallow this because it was too ambiguous
2023-01-13 16:34:46 +01:00
Gavin ae978b3d10 fix an ambiguity in the grammar of datetime literals
this was my very stupid mistake
2023-01-13 16:34:46 +01:00
Gavin 43cce5fe5e HHH-16035 fix bug with Durations magnitude being off by 10^9 2023-01-13 16:34:46 +01:00
Gavin 2f5f5b9a50 HHH-16035 add a test for cast(duration as Long) + tests for duration arithmetic/literals
(pulls in duration arithmetic tests from other branch)
2023-01-13 16:34:46 +01:00
Gavin 6f7b17d36b HHH-16035 change the default for hibernate.type.preferred_duration_jdbc_type to NUMERIC
There's really no value at all in having h2 as the only platform where Duration
is persisted as 'interval second' by default. People usually use h2 for testing,
and probably actually prefer if the schema is more similar to the schema of
their "real" database.

Also, this tiny change fixes issues 1. and 2. of HHH-16035 as a side-effect.
2023-01-13 16:34:46 +01:00
Matías Santurio 669be6a776 HHH-16038 Fix PersistenceContext.setDefaultReadonly javadoc mistake 2023-01-13 15:02:39 +01:00
Christian Beikov 80b638aeca Introduce getSingleJdbcMapping() and getJdbcMapping(int) to improve JdbcMappingContainer accesses 2023-01-13 09:04:15 +01:00
Sanne Grinovero d64873bde6 HHH-15305 Some dead code elimination and analysis cleanup 2023-01-12 22:24:39 +00:00
Sanne Grinovero 3d4cb14627 HHH-15305 Switch size management in BoundedConcurrentHashMap to use an AtomicInteger 2023-01-12 22:00:36 +00:00
franz1981 7e5c3c8dde HHH-15305 Update custom LIRS implementation based on BoundedConcurrentHashMap 2023-01-12 21:49:08 +00:00
Andrea Boriero 2143ced49e HHH-15604 Identically-named association in entity root and elementcollection of embeddables leads to assertion error 2023-01-12 18:19:38 +01:00
Andrea Boriero b774f80ce9 HHH-15966 ElementCollection with nested Embeddables fails with ArrayIndexOutOfBoundsException 2023-01-12 18:19:38 +01:00
Andrea Boriero 00018731f8 HHH-15604 Identically-named association in entity root and elementcollection of embeddables leads to assertion error 2023-01-12 18:19:38 +01:00
Yoann Rodière cfc7b7ba66 HHH-15604 Test identically-named association in entity root and elementcollection of embeddables 2023-01-12 18:19:38 +01:00
Marco Belladelli b5d58e69ae HHH-15928 Check distinct and sub-queries for SQLServer fetch / offset 2023-01-12 17:22:58 +01:00
Marco Belladelli 21d7d2bb10 HHH-15928 Add test for issue 2023-01-12 17:22:58 +01:00
Marco Belladelli 73da49626d Fix select without from in old versions of MySQL and MariaDB 2023-01-12 17:21:05 +01:00
Andrea Boriero 7b308d048f HHH-15902 @OneToMany relationship with @Where on child table generates wrong sql 2023-01-12 15:23:09 +01:00
Andrea Boriero 3765837b9e HHH-15902 Add test for issue 2023-01-12 15:23:09 +01:00
Sanne Grinovero b037047e24 HHH-16030 Improve name for method EntityInitializer#isInitialized and avoid providing a default implementation 2023-01-12 14:22:05 +00:00
Sanne Grinovero 146f7fc234 HHH-16029 Remove misleading method EntityInitializer#isEntityResultInitializer 2023-01-12 14:22:05 +00:00
Sanne Grinovero b725dc4f20 Prefer using asEntityInitializer() over direct cast 2023-01-12 14:22:05 +00:00
Marco Belladelli 8fa39d773b HHH-16014 Cache treated paths + root logic in copy context for paths 2023-01-12 13:27:58 +01:00
Marco Belladelli b0d03e39e2 HHH-16004 Add test for issue 2023-01-12 13:27:58 +01:00
Andrea Boriero 303da7fca8 HHH-15986 Eager Bidirectional association, initializing an HibernateProxy should associate to the circular association the HibernateProxy itself 2023-01-12 10:34:22 +01:00
Andrea Boriero e0ff430936 HHH-15986 Add test for issue 2023-01-12 10:34:22 +01:00
Gavin a3b2e9b4ae HHH-16028 allow FunctionContributor to be registered programmatically
since we can do this with its friend TypeContributor
2023-01-12 00:36:14 +01:00
Gavin 2e84d51838 HHH-16027 add TypeContributions.contributeAttributeConverter() 2023-01-12 00:36:14 +01:00
Gavin 7444b26db4 HHH-15948 move org.hibernate.metamodel.model.convert to org.hibernate.type.descriptor.converter 2023-01-11 17:56:54 +01:00
Gavin 32c8977406 deprecate layer-breaking method SessionFactory.getSessionFactoryOptions() 2023-01-11 12:50:43 +01:00
Gavin e23318aa95 remove type parameter from StatelessSessionBuilder
this was already done for SessionBuilder, but apparently StatelessSessionBuilder got forgotten
2023-01-11 12:50:43 +01:00
Gavin 1606953a32 make SelfRenderingFunctionSqlAstExpression not blow up with NPE
this doesn't exactly *fix* cases with a nonsensible argument list,
but it at least gives us a chance to produce a more meaningful error
2023-01-11 12:46:18 +01:00
Gavin 296cbb88bd fix queries like 'select ... where ...' with no 'from' clause
this was another bug that resulted from the unnecessary use of
the untypesafe getChild() method in SemanticQueryBuilder. It's
really important that we migrate away from that, who knows how
many other bugs are lurking?
2023-01-11 12:46:18 +01:00
Christian Beikov c402431b9f Fix null constraint violation issue introduced in previous commit 2023-01-11 12:07:33 +01:00
Christian Beikov 82fbbd6c0e Remove unnecessary usage of identity generation to avoid Oracle 11 issues 2023-01-10 18:46:56 +01:00
Steve Ebersole 2a302a59ff Move IndexedConsumer and IndexedBiConsumer to more top-level package 2023-01-10 08:40:28 -06:00
Gavin 5d86d88c03 HHH-16010 fix two bugs in natural id handling found just by inspection of code
- fix place where id and entity had always been passed in reversed order
- fix place where whole state array was passes instead of natural id array
- change the API of NaturalIdResolutions because it never needs the session,
  and the fix involved calling it from a place we did not have one
- and also clean up a bunch of warnings
- improve some visually-ugly code in AbstractEntityEntry
2023-01-10 15:11:32 +01:00
Andrea Boriero 6d15c1d115 HHH-15647 Add test for issue 2023-01-10 10:54:42 +01:00
Steve Ebersole d1a890a9cc HHH-16006 - Implement an "additional mapping" contributor SPI 2023-01-09 18:14:27 -06:00
Steve Ebersole a9ef9045f2 HHH-16006 - Implement an "additional mapping" contributor SPI 2023-01-09 15:41:56 -06:00
Marco Belladelli ab86055565 HHH-15890 Fix shouldEmulateFetchClause method for DB2(i)SqlAstTranslator 2023-01-09 19:01:44 +01:00
Gavin dcc05b8c6c HHH-16008 promote joinTransaction() and isJoinedToTransaction() to SharedSessionContract
so they are available on a StatelessSession
2023-01-09 17:42:42 +01:00
Marco Belladelli 436527b4ba HHH-15982 Check property type when setting bidirectionalAttributeName 2023-01-09 17:33:46 +01:00
Marco Belladelli e26f4d25ab HHH-15982 Refactor tests to use StatementInspector 2023-01-09 17:33:46 +01:00
Gavin bf60dd9d2a add some cross-links to Configuration to javadoc 2023-01-09 13:42:49 +01:00
Gavin a48422ee9b try to make StatementInspector a little more prominent in the javadoc 2023-01-09 13:06:27 +01:00
Andrea Boriero 8b86e082ef HHH-15851 Mixup of entities in refresh with BatchSize 2023-01-09 11:23:02 +01:00
Andrea Boriero 72985d7c4d HHH-15851 Add test for issue 2023-01-09 11:23:02 +01:00
Marco Belladelli 87ba85232f HHH-15982 Fix bidirectional one-to-one detection for mappedBy side 2023-01-09 10:42:25 +01:00
Marco Belladelli 5f08ffed83 HHH-15982 Add parentAccess logic to unique key initializer 2023-01-09 10:42:25 +01:00
Marco Belladelli 39f2482ebf HHH-15950 Add test for issue 2023-01-09 10:42:25 +01:00
Andrea Boriero 6f7b9362d2 HHH-15839 CriteriaBuilder treat method on Path causes ClassCastException 2023-01-09 10:39:42 +01:00
Andrea Boriero f7ae48ad08 HHH-15839 Add test for issue 2023-01-09 10:39:42 +01:00
Gavin 82c94ec142 add BinaryLengthTest
to make sure it's possible to have programs with byte[] fields work across Postgres and others
2023-01-08 15:55:40 +01:00
Gavin 1f0a7e1760 clean some unused imports 2023-01-07 21:43:11 +01:00
Gavin 0007820aba HHH-16000 improve javadoc for @HQLSelect and @SQLSelect 2023-01-07 20:06:48 +01:00
Gavin f8f6e4d541 HHH-16000 Add @HQLSelect annotation as abbreviation for @NamedQuery + @Loader
and deprecate @Loader
2023-01-07 15:02:42 +01:00
Gavin 3ceb91d280 HHH-16000 Add @SQLSelect annotation as abbreviation for @NamedNativeQuery + @Loader 2023-01-07 15:02:42 +01:00
Gavin bfdd7f648b HHH-10557 fix @Loader applied to a collection
the issue here is we have no @CollectionResult for annotation-based result set mappings
2023-01-07 15:02:42 +01:00
Gavin 0db49aa2d5 fix character encoding problem 2023-01-07 15:02:42 +01:00
Marco Belladelli 54402da721 HHH-15985 Custom trunc and round function for PostgreSQL and Cockroach 2023-01-06 15:48:09 +01:00
Gavin ff635b7e99 add a historical note to the jdoc of org.hibernate.usertype 2023-01-06 13:32:37 +01:00
Gavin 5fb04fb6f6 give UserType.replace() a sensible default impl that's essentially always correct 2023-01-06 12:47:48 +01:00
Gavin fe9f909dce add an extended example to UserType jdoc 2023-01-06 12:47:48 +01:00
Gavin a4ad36e7f8 fix escaping in code block 2023-01-06 11:07:35 +01:00
Gavin 8aa1647aa2 add MonetaryAmount example to javadoc 2023-01-06 01:44:35 +01:00
Gavin 1f755e0598 work on the jdoc about type annotations 2023-01-06 01:28:50 +01:00
Gavin ccff90b211 example config files in javadoc, and squash some warnings from jdoc tool 2023-01-05 22:59:01 +01:00
Gavin 5c6127848f link to config properties from overview 2023-01-05 21:30:47 +01:00
Gavin b72d332b34 add temporary table-related settings to AvailableSettings 2023-01-05 21:17:07 +01:00
Gavin ab48dc9ba1 remove an email address I missed 2023-01-05 20:21:01 +01:00
Gavin 663c6c2c71 minor jdoc refresh and deprecations to org.hibernate.id 2023-01-05 20:21:01 +01:00
Jan Schatteman d4cc873ad0 Add useCollectingStatementInspector() to @Jpa and refactor tests that can use it to do so
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-01-05 15:40:24 +01:00
Sanne Grinovero 1e87b3399f HHH-15976 Further optimise InitializersList to avoid resizing collections 2023-01-05 13:47:53 +01:00
Sanne Grinovero 04becd0aa4 HHH-15976 Introduce InitializersList helper and optimise Row processing 2023-01-05 13:47:53 +01:00
Sanne Grinovero e1ecf734c2 Trivial cleanup of dead code 2023-01-05 13:47:53 +01:00
Sanne Grinovero cfeddf8531 Deprecate dead method RowReader#toMemento 2023-01-05 13:47:53 +01:00
Gavin 80feec0c53 use @value instead of @link + delete an obsolete logger 2023-01-05 12:15:27 +01:00
Christian Beikov f0cc803b50 Javadoc for TemporaryTableKind 2023-01-05 11:57:02 +01:00
Gavin 1fd45b607c thorough jdoc review and trivial changes to Dialect 2023-01-05 11:19:16 +01:00
Gavin 6f4fe47c54 update log message about hibernate.create_empty_composites.enabled 2023-01-05 11:19:16 +01:00
Steve Ebersole d7201815d5 HHH-15977 - Deprecate @Persister 2023-01-04 13:36:04 -06:00
Gavin 43316e9101 fix a minor bug in RowIdJdbcType 2023-01-04 20:11:37 +01:00
Gavin b233904c6e add two @Override annotations 2023-01-04 20:11:37 +01:00
Christian Beikov b515ec45a0 Mark @Struct annotation to be incubating 2023-01-04 19:56:15 +01:00
Gavin King 1117436090 Update hibernate-core/src/main/java/org/hibernate/boot/model/FunctionContributor.java
Co-authored-by: Steve Ebersole <steve@hibernate.org>
2023-01-04 19:38:24 +01:00
Gavin ecf4d30c50 make Dialect implement TypeContributor and FunctionContributor
there is little *concrete* benefit to this change, and it's slightly break-y but:

- it removes a dependence on the @Incubating type QueryEngine from Dialect
- we eat our own dogfood, that is, use our own abstractions
- it appears that this was how it was *originally* intended to be
2023-01-04 19:38:24 +01:00
Christian Beikov 9080a387fa Fix HANA test failures on CI 2023-01-04 19:23:34 +01:00
Gavin 80a27ebcbe add a note about integrations to the overview 2023-01-04 17:21:32 +01:00
Gavin 08de2ff104 after all that, we've decided that a better solution is to coerce the enum to the right type
so I'm going to accept both interpretations of the enum, which is better for the user,
and this is also much cleaner implementation-wise

This effectively rolls back most of the previous work on HHH-15711
2023-01-04 17:05:32 +01:00
Gavin 1074891a36 migrate to accessing QueryParameterBindingTypeResolver via MappingMetamodelImplementor
it's just not elegant to have it as a supertype of SessionFactoryImplementor (so deprecate that)
2023-01-04 17:05:32 +01:00
Gavin 196d7a1b5a resolve an issue with ArgumentsValidator and access to the MappingMetamodel
(ideally we should never access the MappingMetamodel from ArgumentsValidator)
2023-01-04 17:05:32 +01:00
Marco Belladelli 9369fbd597 Fix date_trunc function for DB2 10 2023-01-04 16:41:14 +01:00
Christian Beikov 2c724d9172 Fix entity naming for Oracle 11 2023-01-04 16:05:30 +01:00
Christian Beikov 39d876e4d3 Fix array value binding for native queries on DBs that have a TINYINT DDL type 2023-01-04 14:31:25 +01:00
Christian Beikov 85a96de131 Fix identity select statement caching 2023-01-04 14:31:25 +01:00
Gavin e3f1c2741d HHH-15960 make @Comment annotation repeatable and properly test it
I didn't quite nail this one first time round :-/
2023-01-04 13:40:44 +01:00
Andrea Boriero 98957c3509 HHH-15854 Improve CollectionInitializer and EntityDelayedFetchInitializer resolveInstance methods performance when the parent entity is initialized 2023-01-04 12:09:34 +01:00
Andrea Boriero 312d7e11a6 HHH-15794 NullPointerException when constructing mapping model for nested embeddables with not optional ManyToOne 2023-01-04 11:55:56 +01:00
Andrea Boriero 17e48d2ace HHH-15794 Add test for issue 2023-01-04 11:55:56 +01:00
Andrea Boriero a3038f94fa HHH-15967 @OneToOne(mappedBy = ..., fetch = LAZY) in embedded referencing an association within another embedded 2023-01-04 11:11:39 +01:00
Andrea Boriero ecde949c7f HHH-15967 Add test for issue 2023-01-04 11:11:39 +01:00
Marco Belladelli 475e4944df HHH-15866 Handle nested embeddables inside EmbeddedId 2023-01-04 10:52:42 +01:00
Marco Belladelli 60fc0c018a HHH-15866 Handle DependantValue when building embedded attr mapping 2023-01-04 10:52:42 +01:00
Marco Belladelli 461383c8d1 HHH-15866 Add test for issue 2023-01-04 10:52:42 +01:00
Marco Belladelli e39473139e HHH-15865 Fix CI test failures due to GenerationType.IDENTITY 2023-01-04 10:02:00 +01:00
Gavin b7b5fb7559 avoid the use of TypeConfiguration.getServiceRegistry() 2023-01-03 21:06:49 +01:00
Gavin e8f899ffbc avoid the use of TypeConfiguration.getSessionFactory() which is not very typesafe
continue sorting out issues with lifecycle of SessionFactoryImpl and friends
2023-01-03 21:06:49 +01:00
Gavin 91c69d72a7 work on jdoc of Dialect (mostly just formatting) 2023-01-03 21:06:49 +01:00
Gavin d285464302 refresh jdoc for TC and TCA 2023-01-03 21:06:49 +01:00
marko-bekhta b47049f892 HHH-15962 Provide simple default impl for new members of `SchemaManagementTool` interface
- make both `getSchemaTruncator/buildGenerationTargets` as default methods throwing `UnsupportedOperationException`
2023-01-03 10:36:44 +01:00
LLEFEVRE ccf4fac124 HHH-15961 Speed-up Oracle CI build 2023-01-03 10:26:46 +01:00
Gavin 4670087c1a mention XML mappings in overview 2023-01-02 22:26:31 +01:00
Gavin c7a26efed5 more jdoc improvements to annotations 2023-01-02 21:48:47 +01:00
Gavin b7f34795df fix for databases which don't like multiple 'check' keywords
- also check for dupe constraints (for some reason they get added)
2023-01-02 21:45:02 +01:00
Gavin f385fa063a consistently allow multiple @Check constraints
+ improvements to jdoc of @Formula and @Check
2023-01-02 21:45:02 +01:00
Gavin aeabc0e48e eliminate SQL parsing when there are no secondary tables 2023-01-02 21:45:02 +01:00
Gavin 822153948c further reduce direct use of SessionFactory during metamodel building 2023-01-02 21:45:02 +01:00
Gavin 102ef2f469 refactor some functionality out of constructor SessionFactoryImpl into observers 2023-01-02 21:45:02 +01:00
Gavin 7aa92a7c05 allow @Formulas to refer to columns of @SecondaryTables
(this is something that was previously only possible using hbm.xml)

also attempt a partial fixup of the initialization process where SessionFactoryImpl
constructor leaked out an uninitialized reference to itself (it still leaks, but
not as badly)
2023-01-02 21:45:02 +01:00
Gavin 1eba25a466 add some doc to AttributeContainer 2023-01-02 21:45:02 +01:00
Gavin 117851e4a4 add example to @Comment 2023-01-02 21:45:02 +01:00
Gavin 1657c22aca automatically detect when a @Check refers to a @SecondaryTable
- also support named check constraints (multiple of them)
- also support check constraints on collection tables
2023-01-02 21:45:02 +01:00
Gavin abb89a32b1 minor change to code 2023-01-02 21:45:02 +01:00
Gavin c718a46285 improve some error messages 2023-01-02 21:45:02 +01:00
Marco Belladelli 90c767681e HHH-15865 Store attribute metadata for inverse EmbeddedAttributeMapping 2023-01-02 12:07:13 +01:00
Marco Belladelli 8f7b8b8fa2 HHH-15865 Add test for issue 2023-01-02 12:07:13 +01:00
Marco Belladelli 8b7ad24756 HHH-15868 Fix log function test on CockroachDB 2023-01-02 11:21:03 +01:00
Gavin a1853a8c05 HHH-15960 reimplement @Column using the o.h.binder infrastructure and add @Comment(on ="...")
this lets me deprecate @Table(comment = "...") and gets rid of all the passing-Comment-objects-around
2023-01-01 21:36:42 +01:00
Gavin df5980226c HHH-15959 add TypeBinders + fix multiple AttributeBinders on a single field 2023-01-01 21:36:42 +01:00
Gavin e48a8120a9 improve some error messages 2023-01-01 17:25:07 +01:00
Gavin 76b2f92f39 HHH-15958 support the @RowId annotation on DB2 LUW
... and perhaps also on DB2 for z and i (no way to test it)
2023-01-01 17:25:07 +01:00
Gavin 366208924f clean up the JdbcSessionContext SPI + related code
- encapsulate stuff better within JdbcSessionContext
- fix lots of warnings
- deprecate stuff
2023-01-01 16:04:29 +01:00