Commit Graph

8270 Commits

Author SHA1 Message Date
Christian Beikov b6b500200b Use BAG for unowned OneToMany and throw an error if @OrderColumn is found on unowned ManyToMany 2022-03-02 17:02:53 +01:00
Christian Beikov a91d23825f Make list semantics setting explicit for failing tests 2022-03-02 17:02:53 +01:00
Christian Beikov 7aaeebe3af Switch back to bag by default for list semantics 2022-03-02 17:02:53 +01:00
Yoann Rodière 4f7d4b7fdb HHH-15094 Handle http://hibernate.org and https://hibernate.org for DTDs in LocalXmlResourceResolver 2022-03-01 16:23:38 +00:00
Yoann Rodière 19073672db HHH-15094 Handle both HTTP and HTTPS versions of DTDs in LocalXmlResourceResolver 2022-03-01 16:23:38 +00:00
Yoann Rodière 8c263b3945 HHH-15094 Test LocalXmlResourceResolver 2022-03-01 16:23:38 +00:00
Yoann Rodière 8c0bc94480 HHH-15094 Remove duplicate DTD descriptor 2022-03-01 16:23:38 +00:00
Yoann Rodière d56032ab7f HHH-15094 Add JPA 3.0 XSDs to LocalXmlResourceResolver 2022-03-01 16:23:38 +00:00
Brian Stansberry 9a23a679bd HHH-15084 Remove use of BeanManager.createInjectionTarget(AnnotatedType) 2022-02-28 12:34:35 +00:00
Christian Beikov 8e6fb5636b Adapt EmbeddableInstantiator and CompositeUserType to accept a ValueAccess instead of a Supplier 2022-02-25 19:15:38 +01:00
Christian Beikov c520b48487 Implement support for CompositeUserType and re-enable tests that make use of it 2022-02-25 15:36:16 +01:00
Christian Beikov 277f10d987 Support implicit joins in plural path parts and fix issues with type resolving of sub query paths 2022-02-24 07:16:38 +01:00
Christian Beikov 247689824f Re-enable some tests 2022-02-24 07:16:38 +01:00
Christian Beikov 335ed19821 Various fixes
* Fix parsing soft-keywords as naked identifiers
* Create proper correlations during parsing
* Fix some type inference issues with entity valued paths
2022-02-24 07:16:38 +01:00
Andrea Boriero 075cc8d108 Fix not increase the statistic loaded entity number when query cache is hit 2022-02-23 09:37:22 +01:00
Yoann Rodière cf9d131d35 HHH-15082 Correctly propagate the original exception when aborting a JDBC batch fails
Not strictly necessary, but it's related to these changes
and I think it's a good idea.
2022-02-18 20:36:58 +00:00
Yoann Rodière 14c8fb752d HHH-15082 Test that batch statements are aborted if a RuntimeException is thrown by Batch#addToBatch
Such an exception can be thrown if an expectation
(org.hibernate.jdbc.Expectation) is not met, for example if an update
statement for a given entity affects 0 rows (e.g. because of a concurrent
update).
2022-02-18 20:36:58 +00:00
Yoann Rodière ec6cd5d0cc HHH-15082 Abort JDBC batches on runtime exceptions as well as SQLException 2022-02-18 20:36:58 +00:00
Christian Beikov 73e9859fea Re-enable more tests.
* Make sure subselect fetch registrations are per navigable path
* Consider the result class for native queries
* Fix issues with nested property references
* Fix list expansion issues for native queries
2022-02-18 12:11:07 +01:00
Andrea Boriero 40bcb97232 Fix String index out of range when wrapping an char 2022-02-17 08:17:29 +01:00
Andrea Boriero cc750a9abd Fix Session#setProperty() for cache and timeout related properties 2022-02-17 08:16:45 +01:00
Christian Beikov c02ce35aa0 Implement on the fly callable named native query to stored procedure translation 2022-02-17 08:14:10 +01:00
Christian Beikov 439788198f Fix some stored procedure and native query issues 2022-02-17 08:14:10 +01:00
Andrea Boriero 8ed1ed5159 Re-enabled additional tests 2022-02-16 16:32:49 +01:00
Steve Ebersole 32ee43cfe7 Added missing space per code-style
Added missing space per code-style
2022-02-16 08:43:39 -06:00
William Burns 6685a7a145 HHH-15080 Session Refresh can cause StaleObjectStateException when entry in 2LC is reread 2022-02-16 08:43:39 -06:00
Andrea Boriero 26e98c0879 Fix BasicTypeResolution for collections annotated with @MapKeyTemporal 2022-02-15 19:02:07 +01:00
Andrea Boriero f14e70cb8f Re-enabled additional tests 2022-02-15 17:45:39 +01:00
Christian Beikov 2873440a25
Use proper RequiresDialect annotation 2022-02-15 13:23:55 +01:00
Christian Beikov b9dca52ecc Fix ProcedureParameterTests 2022-02-15 11:40:41 +01:00
Christian Beikov 9b6ddc8c0b Fix GeneratedAnnotationTests 2022-02-15 11:38:05 +01:00
Christian Beikov 98816362e2 Fix EntityWithManyToOneSelfReferenceTest 2022-02-15 10:11:15 +01:00
Christian Beikov b85f530b42 Log warning when FetchStyle.JOIN is used with LAZY and add migration guide entry for fetch all properties 2022-02-15 09:47:12 +01:00
Christian Beikov dc6ad33cfc HHH-10463 Implement function argument type inference 2022-02-15 09:04:50 +01:00
Christian Beikov 260c738a5a Get rid of some `getEntityMetamodel` uses 2022-02-15 09:03:55 +01:00
Christian Beikov 87638a9a2e Get rid of most walking stuff 2022-02-14 22:55:45 +01:00
Christian Beikov 1a71bb9787 Fix root validation for subqueries that appear in the on clause 2022-02-14 22:55:21 +01:00
Christian Beikov 0f02279f10 Implement partial null key handling and respect lazy flag regardless of fetch style 2022-02-14 20:13:53 +01:00
Andrea Boriero 3b6d25425a HHH-15073 Test criteria query built from JPA metamodel and involving primitive types 2022-02-14 09:34:28 +01:00
Yoann Rodière c1078b2612 HHH-15073 CriteriaPrimitiveIdTest: use only JPA interfaces that are available in Hibernate ORM 5 2022-02-14 09:34:28 +01:00
Yoann Rodière c4e763c5c5 HHH-15073 Test criteria query built from JPA metamodel and involving primitive types 2022-02-14 09:34:28 +01:00
Andrea Boriero d8a98af76e Fix LocalTime and OffsetTime parameter binding 2022-02-11 13:16:28 +01:00
Andrea Boriero 83306d588d Call to Query#getParameterValue(int position) with closed EntityManager must throw an IllegaStateException 2022-02-11 11:36:50 +01:00
Christian Beikov 5bfbc466eb Rename JPA copy compliance setting to `hibernate.criteria.copy_tree` 2022-02-10 18:24:23 +01:00
Andrea Boriero 07f3d6727f Fix native named query max results 2022-02-10 14:27:36 +01:00
Gavin King 74e1e6caad catch other cases where NPE indicates that a PostInitCallbackEntry is unready 2022-02-10 14:05:14 +01:00
Gavin King 9a98976b41 don't use NPE to indicate that a PostInitCallbackEntry is unready and needs to be re-queued
because:

- to anyone stepping through the code it looks like a bug
- nobody *reading* the code would have any way of guessing
  that this is behavior that can happen, much less that it's
  expected and correct
2022-02-10 12:16:16 +01:00
Andrea Boriero 6fcbe5f0a0 Fix parameter binding validation 2022-02-10 09:39:23 +01:00
Gavin King 437da23961 removing a questionable grammar rule seems to make implicit collection joins work 2022-02-09 22:05:21 +01:00
Gavin King 9ebac67737 change the new syntax for HQL collection-aggregates
this feels more consistent to me, and avoids introducing "new" syntax
2022-02-09 22:05:21 +01:00
Christian Beikov 5828536428 Implement window function support in HQL 2022-02-09 18:32:27 +01:00
Christian Beikov d5d1cf937c Fix a type and missing branches in base walkers for ordered set aggregates 2022-02-09 18:31:14 +01:00
Christian Beikov 236ece769b Implement query transformer to emulate for ordered set aggregate functions through their window variants 2022-02-09 18:31:14 +01:00
Christian Beikov f52cf04a16 Introduce QueryTransformer for functions 2022-02-09 18:31:14 +01:00
Christian Beikov c2ee076ce6 Change the way persisting works as needed for list semantics and throw
proper error on null list index
2022-02-08 16:32:25 +01:00
Yoann Rodière 62b4d249ee HHH-15054 Reproducer for cascade-delete NPE on entity with @OneToMany(mappedBy = ...) 2022-02-08 16:32:25 +01:00
Christian Beikov 842ebd0e7e Make use of function return type resolver for elements/indices functions 2022-02-08 16:32:09 +01:00
Christian Beikov 9b53ca8559 Implement support for using generically typed associations to re-enable inheritance/discriminator tests 2022-02-08 15:40:02 +01:00
Andrea Boriero eb572376a9 Implemented NamedQuery creation from Criteria 2022-02-08 14:46:28 +01:00
Gavin King bd5b05cbe3 improve error messages 2022-02-08 14:26:49 +01:00
Gavin King 0dfa91f6ec add a test 2022-02-08 14:26:39 +01:00
Gavin King eefdb4acd6 test demonstrating enduring problems with minelement()/maxelement() 2022-02-08 13:38:00 +01:00
Christian Beikov 4e19e322a3 Don't create table groups for the plural path of a plural part path 2022-02-08 13:25:55 +01:00
Christian Beikov 89bf82fee4 Avoid eagerly resolving secondary tables when using discriminator path 2022-02-08 12:23:43 +01:00
Christian Beikov cab03a238d Add treat test for TCK compliance 2022-02-08 12:23:43 +01:00
Christian Beikov 0a5b62421e Fix treat join issue with one-to-many and make sure table pruning always works. Also fix some issues with union subclass pruning 2022-02-08 12:23:43 +01:00
Gavin King ccee58add8 add some Javadoc, and rename a class 2022-02-07 21:04:54 +01:00
Gavin King 285c2099c8 try to make test work on Maria 2022-02-07 19:15:54 +01:00
Gavin King addc3ea4c2 split out IntegralTimestampaddFunction 2022-02-07 19:15:54 +01:00
Gavin King 3e97fe39a7 make TimestampaddFunction understandable using Extract Method 2022-02-07 19:15:54 +01:00
Gavin King 52c7f61815 add tests for avg(index) and avg(element) 2022-02-07 19:15:54 +01:00
Gavin King 3b221b7b18 remove a garbage feature (FieldFunction) 2022-02-07 19:15:54 +01:00
Gavin King 75888b94f2 use CastFunction to do typecasts 2022-02-07 19:15:54 +01:00
Christian Beikov dc65d041d1 Fix issues with min/max element/index in the select clause 2022-02-07 12:07:03 +01:00
Christian Beikov e0a35287c9 test showing maxindex() / maxelement() broken 2022-02-07 12:07:03 +01:00
Andrea Boriero 768e6873fd Fix Attribute#getJavaType() returs also primitive types 2022-02-07 10:26:44 +01:00
Gavin King a25758f519 don't write @SuppressWarnings({ "unchecked" }) 2022-02-05 20:03:50 +01:00
Gavin King 4b1cd56218 improve Javadoc of JdbcType 2022-02-05 20:00:20 +01:00
Gavin King bedd31b36e clean up a bunch of generics-related warnings 2022-02-05 20:00:20 +01:00
Gavin King a7da40709c clean up looping, using indexed for instead of local var 2022-02-05 15:40:31 +01:00
Gavin King 5de6c703a8 clean up the way JdbcLiteralFormatter is called
this is a case where we can use wildcard capture
2022-02-05 15:09:19 +01:00
Gavin King 09470bd55a fix a couple of warnings in Dialect 2022-02-05 12:31:52 +01:00
Gavin King c2f0ab8fcf get rid of warnings involving JdbcFormatter
also get rid of som explicit type args using <>
2022-02-05 12:26:09 +01:00
Gavin King 2f08812187 fix the round() function on Postgres
for some dumb reason, round(x,n) doesn't accept a double on pg
2022-02-04 18:15:34 +01:00
Andrea Boriero f7d5bc857b Fix SqmMemberOfPredicate negation determination 2022-02-04 15:59:18 +01:00
Andrea Boriero 9a2c87808b Fix mutation queries using temporary table not adding discriminator column 2022-02-04 13:57:48 +01:00
Andrea Boriero e24611e0c3 Call EntityMenager#createQuery() that causes RuntimeException should mark Transaction for Rollback 2022-02-04 11:49:17 +01:00
Yoann Rodière 51e556ebde HHH-15068 Don't try to instantiate types through the bean manager when that's not possible 2022-02-04 10:20:56 +01:00
Yoann Rodière b8060d2df7 HHH-15068 Reproduce problem where type resolution accesses the bean manager before it's ready 2022-02-04 10:20:56 +01:00
blafond 5ced797dd5 HHH-15067: Set add() method as public to allow non-nullable associations in hibe…
…rnate-reactive
2022-02-03 21:14:04 +01:00
Gavin King 0f6295e6e1 remove a bunch of unused classes 2022-02-03 19:10:45 +01:00
Gavin King 11f784e23b add some Javadoc, fix warning, and remove some minor junk 2022-02-03 19:10:45 +01:00
Gavin King c41c5c7472 simplify some code in SchemaAutoTooling 2022-02-03 19:10:45 +01:00
Gavin King 4904f64b2e remove an unused JACC-related class 2022-02-03 19:10:45 +01:00
Christian Beikov 734b80c531 Add test and fix non-pk association comparison issues 2022-02-03 11:55:31 +01:00
Gavin King a4a15e8b35 use single quotes instead of backticks for consistency 2022-02-02 20:00:58 +01:00
Yoann Rodière c861e465a7 HHH-15057 Fix exception on persisting bidirectional, list many-to-many association 2022-02-02 18:09:38 +01:00
Yoann Rodière 4f6b60e3ee HHH-15057 Reproducer for exception about order on many-to-many list 2022-02-02 18:09:38 +01:00
Andrea Boriero fef147d6a4 Fix binding issue for Criteria with paramters having the same name 2022-02-02 15:36:09 +01:00
Andrea Boriero 971d1ea2f4 Fix function parameters type determination 2022-02-02 15:36:09 +01:00
Andrea Boriero b721aa9b86 Fix SqmAttributeJoin#copyTo() method 2022-02-02 09:06:33 +01:00
Gavin King d0255d2c2b make CommonFunctionFactory a real object 2022-02-01 18:21:55 +01:00
Gavin King fed23e51b5 extract method on duplicated expressions in CFF 2022-02-01 15:38:55 +01:00
Andrea Boriero 6327616c8d EntityManager#find() throws IllegalArgumentException for wrong arguments 2022-02-01 14:02:38 +01:00
Christian Beikov 0509b10040 Implement support for ordered set-aggregate functions like listagg, percentile_disc, rank etc. 2022-02-01 13:38:32 +01:00
Andrea Boriero bd2446a5d5 Fix throw IllegalArgumentException for query with no roots specified 2022-02-01 13:32:50 +01:00
Gavin King 5a549ea5b4 fix initialization of SingleTableEntityPersister to be eager 2022-02-01 00:34:14 +01:00
Gavin King dcd7ebbb56 clean up some warnings
use Metadata instead of deprecated Mapping
(I'm not sure that's really an improvement)
2022-02-01 00:34:14 +01:00
Jan Schatteman d2b740ce5b
Jrenaat 6.0 deprecation removals (#4718)
* Removed deprecated org.hibernate.boot.jaxb.internal.stax.LocalSchema

Signed-off-by: Jan Schatteman <jschatte@redhat.com>

* Remove some deprecations from org.hibernate.engine.jdbc

Signed-off-by: Jan Schatteman <jschatte@redhat.com>

* Remove deprecated misspelled method in PostActionEventListener

Signed-off-by: Jan Schatteman <jschatte@redhat.com>

* Remove deprecated getSource() from AbstractPreDatabaseOperationEvent

Signed-off-by: Jan Schatteman <jschatte@redhat.com>

* Privatize deprecated buildOptimizer method in OptimizerFactory

Signed-off-by: Jan Schatteman <jschatte@redhat.com>

* Remove deprecated ServiceContributingIntegrator

Signed-off-by: Jan Schatteman <jschatte@redhat.com>

* Remove some more deprecated features

Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2022-01-31 19:14:48 +01:00
Christian Beikov 0ad5796ffd Implement SQM copying for JPA Criteria API uses 2022-01-31 19:04:37 +01:00
Andrea Boriero 5446291171 Throw UnknownSqlResultSetMappingException for non existing StoreProcedure result mapping 2022-01-31 17:34:38 +01:00
Andrea Boriero b139967be1 Fix Criteria Subquery#getSelection() returns null when it has not any select expression 2022-01-31 17:34:11 +01:00
Christian Beikov de0dd8cda3 Copy DomainParameterXref on demand instead of recreating to avoid instance mismatch with ParameterMetadata 2022-01-31 16:55:59 +01:00
Christian Beikov 1e823386f6 Support FK column access optimization also for associations in embeddables of an element collection 2022-01-31 16:55:59 +01:00
Christian Beikov afdedb0fc5 Avoid rendering unnecessary parenthesis for junctions 2022-01-31 16:55:59 +01:00
Christian Beikov cd555de724 Fix NPE for unbound parameters due to wrong type determination 2022-01-31 16:55:59 +01:00
Christian Beikov ce5951a948 Fix type inference for binary arithmetic expressions 2022-01-31 16:55:59 +01:00
Christian Beikov af42f3a76c Allow controlling whether selection item deduplication should happen and disable deduplication in subqueries. Remove some dead code and fix a possible NPE. Expose some JdbcOperation fields for libraries to make it easy to produce a derived operation. 2022-01-31 16:55:59 +01:00
Gavin King ef391bf644 get rid of warnings about use of deprecated PersisterCreationContext 2022-01-31 14:10:04 +01:00
Gavin King 1c73be8ba4 remove use of deprecated method 2022-01-31 14:10:04 +01:00
Gavin King 3f563087e6 add a couple of comments 2022-01-31 11:29:24 +01:00
Gavin King c9015bcd8d make ln() and exp() have the return type Double 2022-01-31 11:29:24 +01:00
Gavin King 385cba79d8 remove PowerReturnTypeResolver
You can't do "exact decimal" exponentiation. For the same reason that
sqrt() is of type Double in the JPA, pow(decimal, 0.5) is also of type
Double.

Yes, yes, I know that some dbs (Postgres!) claim that the return type is
NUMERIC for NUMERIC arguments. But go on, try it: yes, the return type of
typed NUMERIC, but then it has a very suspicious number of digits. Hrrm....
17 decimal digits, now why does that specific number ring a bell?
2022-01-31 11:29:24 +01:00
Gavin King 5b5c76abfd fill in type parameters of raw type in Type interface 2022-01-30 19:28:24 +01:00
Gavin King 1b0862babd introduce Contexts for the other cascading operations that need them
and typesafety, finally!
2022-01-30 19:28:24 +01:00
Gavin King 7570d15291 finally fix the warnings and typecasts in DefaultMergeEventListener
by using MergeContext instead of (raw!) Map
2022-01-30 19:28:24 +01:00
Gavin King b75613cff1 edit the (excellent) javadoc of MergeContext 2022-01-30 19:28:24 +01:00
Gavin King 772c4533ee move inner classes of CommonFunctionFactory to toplevel 2022-01-30 19:01:36 +01:00
Gavin King 8025af7592 add some code comments documenting some decisions taken here
cc @beikov
2022-01-30 16:58:24 +01:00
Gavin King f5278ce678 javadoc about XML format mappings 2022-01-29 19:18:38 +01:00
Gavin King 9a11e843e6 stop calling factory.getJdbcServices().getDialect() so much 2022-01-29 18:00:39 +01:00
Gavin King 48dc4662ef move subclassColumnClosure down to the only subclass that uses it 2022-01-29 17:46:42 +01:00
Gavin King 135216b0a9 fix some warnings in a couple of tests 2022-01-29 17:01:57 +01:00
Gavin King 56232a0159 remove a bunch of unused junk from the persisters
this is a potential performance gain!
2022-01-29 17:01:57 +01:00
Gavin King 929cbd1139 add missing @Override annotations 2022-01-29 17:01:57 +01:00
Gavin King 38f4c70e7b split up TypeHelper 2022-01-29 12:55:27 +01:00
Gavin King 6c3b74d39e clean up an important test 2022-01-29 11:16:20 +01:00
Gavin King e8d7c98798 deprecate two operations that are no longer called
... and return deprecated types
2022-01-29 11:15:55 +01:00
Gavin King ea36099571 fix some deprecation warnings by using getValues() instead of getPropertyValues()
though I don't like the underlying deprecation that made this necessary, and I
would prefer to be able to roll back these changes
2022-01-29 10:58:37 +01:00
Gavin King 678adbf682 add some missing (since = "6.0") 2022-01-29 10:55:50 +01:00
Gavin King 3f1cc36c2a fix some warnings in QueryResultsCacheImpl 2022-01-29 10:48:23 +01:00
Gavin King d86e9b6ab6 minor stylistic review and generics fixes in event stuff 2022-01-29 10:32:49 +01:00
Gavin King c086fff1f8 fix some warnings in a couple of tests 2022-01-29 09:00:14 +01:00
Gavin King c807aecdb9 add some @FunctionalInterface annotations
and fix a warnings
2022-01-29 08:59:34 +01:00
Gavin King 232ad00f5c add some missing (since="6.0") 2022-01-29 08:57:25 +01:00
Gavin King cd7417e815 remove unwrap() methods that aren't to do with proxying
it's better to do this stuff in a more typesafe way
2022-01-29 02:12:44 +01:00
Gavin King 2e2a544584 correct fix for Interceptor.onSave()
see 9898151dda

This change broke the ability to selectively implement methods of Interceptor,
and also broke backwards compatibility with older implementations of Interceptor.
2022-01-29 02:12:25 +01:00
Gavin King 2090df4a08 fix some raw types in Configuration 2022-01-29 02:12:25 +01:00
Gavin King 9276ce4421 explain how to get things in the javadoc 2022-01-29 00:43:08 +01:00
Gavin King f388b2fb2b Javadoc for SessionFactoryBuilder and lots of crossrefs 2022-01-28 19:46:39 +01:00