Commit Graph

10639 Commits

Author SHA1 Message Date
Gavin King 376a90f9b5 Bytebuddy -> Byte Buddy 2023-07-12 21:45:26 +02:00
Gavin King 99d8bf0832 improve Javadoc of org.hibernate.annotations.processing 2023-07-10 14:36:32 +02:00
Gavin King 605a732e05 HHH-16914 add support for EntityGraphs to NaturalIdLoadAccess and SimpleNaturalIdLoadAccess 2023-07-10 14:36:32 +02:00
Gavin King d5c4e2673b HHH-16695 fill in missing javadoc 2023-07-10 14:36:32 +02:00
Gavin King db4d529f60 HHH-16633 generate query methods from @NamedQuery annotations 2023-07-10 14:36:32 +02:00
Gavin King 87a320615c HHH-16695 make fetch profiles actually work for natural id loading 2023-07-10 14:36:32 +02:00
Gavin King 17ea1e28b9 HHH-16633 add ability to specify fetch profiles in @Find annotation 2023-07-10 14:36:32 +02:00
Gavin King 09f110254f HHH-16695 add enableFetchProfile() to XxxxIdLoadAccess 2023-07-10 14:36:32 +02:00
Gavin King 2e351831f1 HHH-16695 add enableFetchProfile() to Query 2023-07-10 14:36:32 +02:00
Gavin King 294ec27885 HHH-16913 EntityGraph support for StatelessSession 2023-07-08 19:18:26 +02:00
Gavin King 6b7d5bae3d HHH-16899 refinements to the CriteriaDefinition API 2023-07-08 18:06:21 +02:00
Gavin King f3eb0ec770 HHH-16899 allow the CriteriaDefinition to modify an existing query 2023-07-08 18:06:21 +02:00
Gavin King b4b2b295fc HHH-16899 avoid capturing the Session in CriteriaDefinition [as suggested by Sanne] 2023-07-08 18:06:21 +02:00
Gavin King 2d92edd6bb HHH-16899 add test for CriteriaDefinition 2023-07-08 18:06:21 +02:00
Gavin King 7db99d8661 add a link in some package-level javadoc 2023-07-08 18:06:21 +02:00
Gavin King 67ac383c26 HHH-16899 add CriteriaDefinition utility class 2023-07-08 18:06:21 +02:00
Gavin King a440046556 HHH-16898 add JpaExpression.equalTo() 2023-07-08 18:06:21 +02:00
Gavin King d7fd5bd78a HHH-16633 add ability to generate @Find methods for @NaturalIds and arbitrary field lists 2023-07-07 22:44:07 +02:00
Gavin King 0c40711563 HHH-16633 add ability to generate @Find methods 2023-07-07 22:44:07 +02:00
Gavin King d83f472e18 HHH-16909 expose slow queries via Statistics API 2023-07-07 13:25:00 +02:00
Gavin King 33700597af HHH-16909 make setting for slow query logging obey our naming conventions 2023-07-07 13:25:00 +02:00
Yoann Rodière 94b33e6198 HHH-16892 Fix LocalXmlResourceResolver not resolving some dtd URLs that use the https scheme 2023-07-07 13:06:02 +02:00
Dennis Katz 5aac28cb9e HHH-16886 fixed by adding parenthesis
HHH-16886 fixed by adding parenthesis

HHH-16886 test added

HHH-16886 move test to query package and some fixes
2023-07-07 10:22:50 +02:00
Gavin King 135871dbd9 batch of minor improvements to the parser/SemanticQueryBuilder (typesafety) 2023-07-06 12:37:00 +02:00
Gavin 980bf4d8ab restrict offset/fetch to be a Number in the Jpa/Sqm tree types 2023-07-06 10:47:17 +02:00
Gavin 98a83a082c add lots @Override annotations and some generic type args in Jpa types
removed an unused and unimplemented interface
2023-07-06 10:47:17 +02:00
Gavin 41fe405aa7 HHH-16866 remove usages of Sqm types from Jpa APIs
There were quite a few layer-breakers here.

The org.hibernate.criteria package is supposed to be an abstraction over
the SQM tree. It should not leak types from the org.hibernate.sqm package.
2023-07-06 10:47:17 +02:00
Gavin King f933b064e9 HHH-16633 support new Order and Page objects as parameters of query methods 2023-07-06 01:02:15 +02:00
Sanne Grinovero 19a75aad9e Add note about Hibernate Reactive usage 2023-07-05 17:55:08 +01:00
Gavin King 73c8479bf4 HHH-16815 rename paginate() -> setPage
fix a bug in Page class
2023-07-05 14:43:12 +02:00
Gavin King 7227831d56 HHH-16815 rename getSortOrder() -> getSortDirection() 2023-07-05 13:23:15 +02:00
Gavin King f2d6373409 HHH-16815 finally settle on using a List or Order objects 2023-07-05 13:23:15 +02:00
Gavin King c29db563b5 aesthetic improvements to NullPrecedence enum 2023-07-05 13:23:15 +02:00
Gavin King 49f890d781 move NullOrdering to the Dialect package where its usages are 2023-07-05 13:23:15 +02:00
Gavin King 1e46146b54 HHH-16815 more convenient pagination via Query API
- add Page convenience class
- add Query.paginate(int, int)
- add Query.paginate(Page)
2023-07-05 13:23:15 +02:00
Gavin King f7e12d49ed HHH-16815 more flexible sorting via Query API
- added Query.sort(SortOrder,SingularAttribute)
- added Query.sort(Sort...)
- added Sort class for convenience
- moved SortOrder to org.hibernate.query
  (its package was @Incubating)
- move NullPrecedence enum
2023-07-05 13:23:15 +02:00
Gavin King 5c318ea974 HHH-16875 enable test on MySQL and Maria 2023-07-05 00:55:35 +02:00
Gavin King 01dabaa2de HHH-16875 add a test involving JPQL function() construct 2023-07-05 00:55:35 +02:00
Gavin King cd02a961c8 HHH-16875 be a bit more forgiving when type checking expressions involving unknown HQL functions
Let's not reject expressions like:

    function('current_user') = 'username'

also add QueryArgumentException
2023-07-05 00:55:35 +02:00
Gavin King 28b1670d18 HHH-16887 also validate arguments of @NamedQuery if @CheckHQL is specified 2023-07-04 19:53:15 +02:00
Gavin King 445f2cbdd8 very minor change 2023-07-04 19:53:15 +02:00
Sanne Grinovero 445d92aedb HHH-16877 Efficient lookup of MutationExecutorService 2023-07-04 16:50:07 +01:00
Andrea Boriero 39bc616cd9 HHH-16853 Setting Named Query Parameters is VERY slow 2023-07-04 11:43:51 +01:00
Gavin King 67fab3df5b rename Discriminatable -> Discriminable
Since "discriminatable" is not standard English
2023-07-03 17:30:05 +02:00
Gavin King a2e95b2b70 whitespace changes 2023-07-03 17:30:05 +02:00
Gavin King b6eabdf17d add missing @Override annotations
and Extract a function
2023-07-03 17:29:20 +02:00
Gavin King 617ce3206e cleanup more generic typing issues around paths and graphs
simplify the whole appliesTo() thing which was convoluted and overly-complex
2023-07-03 17:29:20 +02:00
Gavin King 6299ceb61d fix up lots of errors in generic typing related to DomainTypes...
...and reduce coupling to JpaMetamodel. This is useful for tools like
Query Validator which need to instantiate these metamodel objects in a
"mocked" environment. It will also make it possible for the Metamodel
Generator to generate static references to these metamodel objects.
2023-07-03 17:29:20 +02:00
Andrea Boriero 4adafc2757 HHH-15720 Using multiple select in a multiselect generates java.lang.ArrayIndexOutOfBoundsException 2023-07-03 10:38:22 +02:00
Andrea Boriero 551043a4de HHH-15720 Add test for issue 2023-07-03 10:38:22 +02:00
Gavin King d32e8adaf2 detach EntityGraphs from the JpaMetamodel
so that they can be newed more easily
2023-07-02 09:52:47 +02:00
Gavin King 1e05e8444e clean up lots of warnings in org.hibernate.graph 2023-07-02 09:52:47 +02:00
Gavin King bc901f5162 HHH-16875 improve typechecking for comparisons of embeddables, tuples, entities 2023-06-30 23:12:18 +02:00
Marco Belladelli 63cccf87dc HHH-16792 Unqualify table expressions for cte table names 2023-06-30 17:05:57 +02:00
Marco Belladelli 520394a790 HHH-16792 Add test for issue 2023-06-30 17:05:57 +02:00
Christian Beikov 33a3ff2994 Switch to correct skip-dialect annotation for Cockroach test-skipping 2023-06-30 10:34:20 +02:00
Sanne Grinovero 2acda737d2 HHH-16873 Expose fast-path cloning constructors for UpdateCoordinatorStandard 2023-06-30 08:46:32 +01:00
Jan Schatteman 11aa022aa2 HHH-16868 - add test for issue (no fix required)
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-06-29 21:34:31 +02:00
Gavin King 1e4b9e8ffb
HHH-16858 improve typechecking for comparisons/assignments (#6910)
* HHH-16858 improve typechecking for comparisons/assignments

In particular, correctly typecheck comparisons between enums
and other enums, and literal integers / strings. Actually
I'm not a great fan of comparing enums with int/string literals
but since we used to support it in 5, and kinda mostly support
it in earlier releases of 6, on balance we might as well continue
to allow it.

* improve typechecking for arguments to min() & max()

- use the known JdbcType which previously we didn't have
  proper access to
- and accidentally fix HHH-16859 by side-effect
  (I didn't really want to fix that one, but it was easier
  to fix it than to unfix it.)

* HHH-16858 handle MySQL enum types correctly in comparison typecheck
2023-06-29 00:36:29 +02:00
Christian Beikov 9464aecc78 HHH-14078 Avoid duplicate elements when initializing bag with queued operations 2023-06-28 17:31:24 +02:00
Sanne Grinovero dfa26e0b5c HHH-16815 Improvements in SqmInterpretationsKey 2023-06-28 09:40:07 +01:00
Marco Belladelli 4095e16212 HHH-16642 Restrict conjuct type predicate to treated roots 2023-06-28 09:21:17 +02:00
Marco Belladelli 00d13050f1 HHH-16642 Add test for issue 2023-06-28 09:21:17 +02:00
Gavin King 2a3bab5e81 HHH-16857 fix the syntax for NVARCHAR literals on SQL Server
and improve an error message
2023-06-28 00:10:40 +02:00
Gavin King 3c2d4f9616 HHH-16814 add getRootList()
The method getRoots() returning a Set is really inconvenient
2023-06-27 16:38:26 +02:00
Christian Beikov b6a1aefa6f HHH-13857 Improve javadoc
Co-authored-by: Steve Ebersole <steve@hibernate.org>
2023-06-27 15:54:32 +02:00
Christian Beikov ed472eff8a HHH-13857 Avoid initialization when obtaining persistent class with Hibernate.getClass() 2023-06-27 15:54:32 +02:00
Steve Ebersole 60b6fe3d9f HHH-16514 - Property sorting can lead to incorrect column mappings with derived embeddable keys 2023-06-27 08:12:32 -05:00
Gavin King 145b7e5d90 add decent javadoc blurb to HibernateCriteriaBuilder and package 2023-06-27 13:07:36 +02:00
Gavin King da7f169371 HHH-16814 add HibernateCriteriaBuilder.createQuery(hql, resultType)
- also add missing createCriteriaInsertValues() method
- also add some missing @Incubating annotations
2023-06-27 13:07:36 +02:00
Andrea Boriero bdcc619e29 HHH-16820 When batching enabled the LockModeType is ignored 2023-06-27 10:18:20 +02:00
Andrea Boriero bbbf8e969b HHH-16820 Add test for issue 2023-06-27 10:18:20 +02:00
Andrea Boriero ab36d29e1a HHH-16839 Failing to update a one-to-one lazy association with and enabled bytecode enhancement 2023-06-27 10:15:52 +02:00
marko-bekhta 387cde33d1 HHH-16839 Add a test case to reproduce the issue 2023-06-27 10:15:52 +02:00
Christian Beikov cbf5ee8e45 Use VARCHAR registered JdbcType's type code instead of NationalizationSupport to fix HANA test issues 2023-06-27 09:42:36 +02:00
Marco Belladelli c1c912d034 HHH-16733 Reuse correct navigable path for correlated and treated copy 2023-06-27 09:21:53 +02:00
Marco Belladelli c06d6053b3 HHH-16733 Use existing SQM copy logic in QuerySplitter 2023-06-27 09:21:53 +02:00
Marco Belladelli 0d3628afd3 HHH-16733 HHH-16582 Add test for issue 2023-06-27 09:21:53 +02:00
Gavin King bec6cfab12 HHH-16848 add SelectionQuery.ascending(int) & descending(int) 2023-06-26 20:59:53 +02:00
Jan Schatteman 23df9eb785 Fixing a few typos
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-06-26 19:53:05 +02:00
Gavin King ade28621c2 don't throw away the cause of an exception 2023-06-26 19:19:08 +02:00
franz1981 99da69fdc1 HHH-16462 Share the same Jandex Indexer while indexing different files 2023-06-26 19:11:24 +02:00
Christian Beikov eece96bb12 Remove HANA related double precision tests that became obsolete since drivers were updated 2023-06-26 18:59:36 +02:00
Christian Beikov 4453681e00 Use NationalizationSupport in some tests to fix HANA test issues 2023-06-26 18:59:36 +02:00
Christian Beikov 187b42391f Add missing repeat function registration for HANA 2023-06-26 18:59:36 +02:00
Christian Beikov aeb78bc7d6 Fix QueryLiteral assertion error in table based multi-table insert handling 2023-06-26 18:59:36 +02:00
Christian Beikov 4903b2f14d Skip a test on Cockroach and add PostgreSQL version requirement for other test. 2023-06-26 18:59:36 +02:00
marko-bekhta 876f6db487 HHH-16799 Don't fall back to field access type too early 2023-06-26 18:22:32 +02:00
Andrea Boriero b1b654d702 HHH-16821 Fail to delete entity with a composite id using an @IdClass with one of its fields mapped from the id of a @ManyToOne association 2023-06-26 18:12:00 +02:00
Andrea Boriero 1139322f23 HHH-16281 Add test for issue 2023-06-26 18:12:00 +02:00
Andrea Boriero 1b3f728703 HHH-16832 Bytecode enhancement leads to broken constructor for a generic embedded field in a MappedSuperclass 2023-06-26 18:09:53 +02:00
Yoann Rodière 35206ddb19 HHH-16832 Reproducer
As far as I can see, the problem is in:

5a63d8758a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/bytebuddy/InlineDirtyCheckingHandler.java (L88-L90)

`GetterMapping` doesn't seem to work correctly when the getter is
defined in the superclass with a more abstract type.
2023-06-26 18:09:53 +02:00
Christian Beikov a098abff42 Handle timeout exception for older H2 versions and igonre a test for Cockroach 2023-06-26 17:49:18 +02:00
Gavin King d16808e015 HHH-16815 tests for ascending()/descending() with parameters 2023-06-26 17:00:53 +02:00
Gavin King 5d05dd8478 HHH-16815 don't copy parameters, since they have identity equality 2023-06-26 17:00:53 +02:00
Jan Schatteman a3abac9065 HHH-16515 - Add o.h.engine.transaction to nullness checking
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-06-26 16:12:14 +02:00
Jan Schatteman e7d0bd0955 HHH-16515 - Add o.h.engine.profile to nullness checking
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-06-26 16:12:14 +02:00
Sanne Grinovero ea56fbdb53 Deleting some unused code 2023-06-26 14:38:59 +01:00
Sanne Grinovero e9f879d9d6 Automated cleanup: inefficient branching (thanks IntelliJ) 2023-06-26 14:38:59 +01:00
Sanne Grinovero 0fb5895d08 Automated cleanup: suboptimal string handling (thanks IntelliJ) 2023-06-26 14:38:59 +01:00
Gavin King 4bd5ebad4e HHH-16619 don't generate table aliases beginning with _
- because Oracle hates that
- also, as suggested by @sebersole common in code, start
  generating "acronym"-based aliases
2023-06-26 00:35:01 +02:00
Gavin King cb7b364b46 fix 'is distinct from' predicate on HSQL
the semantics of the built-in operator are different to our semantics
2023-06-25 23:24:20 +02:00
Gavin King 1807e1cc43 extra test for 'is distinct from' 2023-06-25 23:24:20 +02:00
Gavin King b7120a60a3 minor change to grammar for readability 2023-06-25 23:24:20 +02:00
Gavin King f77067b1b3 HHH-16843 fix interpretation of 'value = null' in HQL
the previous implementation was not compliant with the
JPA spec and defied logic
2023-06-25 19:21:29 +02:00
Gavin King f13b6cc16b remove unused interface QueryPlanCache 2023-06-25 16:19:26 +02:00
Gavin King d6ffb75251 HHH-16829 skip test on TiDB 2023-06-25 15:26:13 +02:00
Gavin King 987a0dfe3c HHH-16801 add HQL 'is true', 'is not true', 'is false', 'is not false' operators 2023-06-25 15:18:27 +02:00
Gavin King e2100bc185 HHH-16829 fix test in CI 2023-06-24 21:39:27 +02:00
Gavin King ae1215ca35 HHH-16829 add @Collate annotation 2023-06-24 21:39:27 +02:00
Gavin King 0b191e0b1b correct a ref to a property, and squash warnings in AvailableSettings 2023-06-24 13:58:07 +02:00
Gavin King 1603e4a472 add test for StatelessSession.upsert() 2023-06-24 02:08:03 +02:00
Gavin King 79c58bbcc8 HHH-16815 fix issues with query plan cache and ascending()/descending() 2023-06-22 23:14:31 +02:00
Christian Beikov 28043f8fc4 HHH-16711 Ensure static accessor methods for accessing foreign package state use visible types 2023-06-22 13:40:12 +02:00
Jan Schatteman 2076fc0976 HHH-16711 / HHH-16707 - Added tests for these related issues
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-06-22 13:40:12 +02:00
Christian Beikov f2493040e3 HHH-15435 Improve error when using derived root in context that needs expansion 2023-06-22 11:44:53 +02:00
Marco Belladelli 02e2172778 HHH-16602 Dedicated action queue priority for orphan collection removals 2023-06-22 11:30:47 +02:00
Jan Schatteman 4d72a10cba HHH-16701 Add test for issue
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-06-22 11:30:47 +02:00
Marco Belladelli c07f9062d3 HHH-16602 Add test for issue 2023-06-22 11:30:47 +02:00
Christian Beikov f19e971de5 HHH-14703 Testcase showing that @Enumerated is picked up through implicit access type 2023-06-21 18:32:30 +02:00
Christian Beikov 98e028c51d HHH-14483 Split insert-values statement if dialect doesn't support values lists 2023-06-21 18:24:33 +02:00
Christian Beikov 8809e5720c HHH-16831 Replace string concat with proper string format for logging 2023-06-21 16:33:02 +02:00
Scott Marlow 6c6df62e36 HHH-16275 fix whitespace
Signed-off-by: Scott Marlow <smarlow@redhat.com>
2023-06-21 11:32:32 +02:00
Scott Marlow bb76426b5b HHH-16275 also wait longer for LockTest.testLockUpdateFkTarget
Signed-off-by: Scott Marlow <smarlow@redhat.com>
2023-06-21 11:32:32 +02:00
Scott Marlow d208dda7e7 HHH-16275 wait longer for LockTest.testLock*FkTarget to insert row on the database server to avoid occasional fail with timeout getting lock
Signed-off-by: Scott Marlow <smarlow@redhat.com>
2023-06-21 11:32:32 +02:00
Yoann Rodière 23dafff99e Fix a few invalid file headers
Looks like my IDE was misconfigured when I contributed those files.
2023-06-21 10:56:30 +02:00
Christian Beikov bbb7bcf389 HHH-16721 Make sure join predicate is propagated to correlation on lazy initialization 2023-06-20 18:40:37 +02:00
Christian Beikov 1cc94c76b9 HHH-16589 Limit in clause padding to Dialect.getInExpressionCountLimit and fix negated in predicate splitting 2023-06-20 18:37:06 +02:00
Adrodoc 56955367ba HHH-16589 In clause padding can no longer cause in clauses to exceed Dialect.getInExpressionCountLimit 2023-06-20 18:37:06 +02:00
Gavin King 4e7c5df4fe note uniqueness of names in the Javadoc 2023-06-20 17:53:04 +02:00
marko-bekhta a63eed837d HHH-16815 Add default implementation throwing an exception for sorting methods on Query 2023-06-20 17:29:37 +02:00
marko-bekhta ada88805f8 HHH-16815 Remove some unused methods 2023-06-20 17:29:37 +02:00
Marco Belladelli cbac1b82c0 HHH-16773 Fix functional dependency support for TiDB and Cockroach 2023-06-20 14:21:23 +02:00
Marco Belladelli fd690f378d HHH-16784 Always resolve generic interface classes to Object type 2023-06-20 14:20:34 +02:00
Marco Belladelli eb53368115 HHH-16784 Add test for issue 2023-06-20 14:20:34 +02:00
Andrea Boriero 55f46ced44 HHH-16461 @Version + session.refresh(entity, LockMode.PESSIMISTIC_WRITE) leads to StaleObjectStateException 2023-06-20 12:21:59 +02:00
Yoann Rodière f78c5d375d HHH-16461 Test @Version + session.refresh(entity, LockMode.PESSIMISTIC_WRITE) 2023-06-20 12:21:59 +02:00
Gavin King fb4f5ba617 HHH-16823 support for nvarchar on MySQL
In H6 we stopped producing nvarchar columns on MySQL, but it's
needed for MySQL 5.7. On the other hand, actually nvarchar is
deprecated in MySQL 8.

So use 'varchar character set utf8' instead.
2023-06-20 09:30:51 +02:00
Andrea Boriero c9baeb5c68 HHH-16794 With Bytecode enhancement a lazy ManyToOne association targeting an Entity annotated with @Proxy(lazy = false) is eagerly loaded 2023-06-19 15:49:39 +02:00
Andrea Boriero d71a0f77e1 HHH-16794 Add test for issue 2023-06-19 15:49:39 +02:00
Andrea Boriero 46bfc59cd1 HHH-16743 StackOverflowError when loading a ManyToOne whith @Proxy(lazy=false) 2023-06-19 13:44:21 +02:00
gtoison 4933303f0b HHH-16743 Add test for issue 2023-06-19 13:44:21 +02:00
Gavin King bc8c0a238c clean up some imports in tests 2023-06-18 03:24:29 +02:00
Gavin King 7d79760b9a HHH-16633 make GenericDialect public
oops, tests did not catch this
2023-06-18 03:21:05 +02:00
Gavin King 7ecec615d3 HHH-16815 fix generic signature of ascending() / descending()
+ code cleanups in the Query hierarchy
2023-06-17 23:10:48 +02:00
Gavin King c6658fbb84 HHH-16815 add ascending()/descending()/unordered() to SelectionQuery
This is going to be very convenient
2023-06-17 20:07:02 +02:00
Gavin King b1998782e9 HHH-16633 introduce new package for @HQL, @SQL, @CheckHQL annotations 2023-06-17 20:07:02 +02:00
Gavin King cfe545ec3d HHH-16633 introduce native query methods to JPA metamodel generator 2023-06-17 20:07:02 +02:00
Gavin King 698b245753 HHH-16633 introduce query methods to JPA metamodel generator 2023-06-17 20:07:02 +02:00
Gavin King d3e15a7cc1
don't throw ParsingException (it represents a bug in the parser) (#6819)
- we should throw SyntaxException for expected conditions
- also, avoid the use of weirdo non-standard hyphenation in error messages
2023-06-17 14:08:14 +02:00