Commit Graph

655 Commits

Author SHA1 Message Date
Gavin King f591ce1b36 allow compound paths in JD @By annotation 2024-03-06 08:13:16 +01:00
Gavin King ebd72f8470 handle generic-typed parameters of query methods 2024-03-05 20:58:32 +01:00
Gavin King 19023a491e report error if parameter of @Find matches a collection 2024-03-05 20:58:32 +01:00
Gavin King db1b3b3f40 HHH-17807 add test 2024-03-05 19:04:10 +01:00
Gavin King 691a2d8109 HHH-17807 fix array-typed query method parameters 2024-03-05 19:04:10 +01:00
Marco Belladelli 096b667520 HHH-17805 Fix jpamodelgen quarkus/jd tests with jdk >= 17 2024-03-05 10:53:18 +01:00
Gavin King 9b4e61c984 HHH-17778 add a stub for the old processor
as requested by @beikov
2024-03-01 22:58:59 +01:00
Gavin King 4bc4ffe056 HHH-17778 rename jpametamodelgen -> processor 2024-03-01 22:58:59 +01:00
Gavin King 7636d78feb HHH-17778 rename JPAMetaModelEntityProcessor -> HibernateProcessor 2024-03-01 22:58:59 +01:00
Gavin King 1c46c0060f HHH-17772 use new record types to impl static metamodel 2024-03-01 21:35:25 +01:00
Gavin King 9014182e3c HHH-17772 improve the test 2024-03-01 21:35:25 +01:00
Gavin King 2beb85e695 HHH-17772 support for returning the argument from lifecycle methods 2024-03-01 21:35:25 +01:00
Gavin King ca12a4c874 tests for Jakarta Data
thanks @FroMage and others for giving me an example of how to do this
2024-03-01 20:16:37 +01:00
Gavin King af285657db add missing static imports to generated source 2024-03-01 19:21:26 +01:00
Gavin King 11fa929f20 minor code changes to generator 2024-03-01 19:21:26 +01:00
Stéphane Épardaud 6dfdbe197f Make Panache tests run as part of regular tests 2024-03-01 18:24:07 +01:00
Christian Beikov 9e323963f0 Configure separate source directories for HR and ORM Quarkus Panache tests 2024-03-01 18:24:07 +01:00
Christian Beikov 1fe9c66fb4 Fix Gradle configuration issues 2024-03-01 18:24:07 +01:00
Stéphane Épardaud 85abce26f5 TestUtil: include entire diagnostic on failure
This way we get the line number
2024-03-01 18:24:07 +01:00
Stéphane Épardaud 7c453fb6b6 Start of tests 2024-03-01 18:24:07 +01:00
Stéphane Épardaud b32296ff32 Auto-detect quarkus and default to dao with the proper session type
Unless there's a different session getter defined
2024-03-01 18:24:07 +01:00
Stéphane Épardaud 5b184caf9b Make sure reactive update/delete return a Uni of Integer or Void 2024-03-01 18:24:07 +01:00
Stéphane Épardaud 06136ba5ec Make sure ununi does not throw given a Uni<T> 2024-03-01 18:24:07 +01:00
Stéphane Épardaud ed29057315 Support default session getters
In which case, we don't store the session in the DAO, we always call the getter
2024-03-01 18:24:07 +01:00
Stéphane Épardaud 1f3aed022c Support ORM/HR+Panache
- Allow `@Find`/`@*QL` methods on `native` methods
- Look at session getters to find their session types, but never make
  DAOs for Panache entities or repositories (we want generated static methods)
2024-03-01 18:24:07 +01:00
Stéphane Épardaud 36c9ce9d20 Support sessions of type Uni<Mutiny.Session> 2024-03-01 18:24:07 +01:00
Gavin King 3ca494be79 HHH-17772 allow array as return type for @Find methods
add tests
2024-03-01 12:22:08 +01:00
Gavin King 7ad39a86e9 HHH-17772 allow array as return type for @Find methods
as required by Jakarta Data
2024-03-01 12:22:08 +01:00
Gavin King 25d0899f28 HHH-17772 new approach to PU injection in Quarkus
as discussed with @FroMage
2024-03-01 11:07:39 +01:00
Gavin King 5d2527383e HHH-17772 cleanup after sorting rework 2024-02-29 20:42:52 +01:00
Gavin King 7f4f760ac8 HHH-17772 cleanup disabled code 2024-02-29 20:42:52 +01:00
Gavin King faec7c1a67 HHH-17772 redesign + unify handling of sorting 2024-02-29 20:42:52 +01:00
Gavin King 4ce2d317e5 HHH-17772 support Jakarta Data Page and Slice as return types 2024-02-29 13:16:47 +01:00
Gavin King 4fe6dad95b HHH-17772 support KeysetAwarePage from Jakarta Data
+ fix some bugs
2024-02-29 07:53:57 +01:00
Gavin King 9e5ce60ac1 HHH-17772 support KeysetAwareSlice from Jakarta Data
significant refactoring
2024-02-29 01:31:49 +01:00
Gavin King 128859c3c8 HHH-17779 test new key-based pagination API generator 2024-02-27 22:11:48 +01:00
Gavin King 8c9e4f68bf HHH-17779 support new key-based pagination API in generator 2024-02-27 22:11:48 +01:00
Christian Beikov 7713a074af Also exclude Jakarta Data tests from Java 17+ runs 2024-02-27 09:56:36 +01:00
Gavin King 568ad5804e HHH-17772 support @OrderBy for @Query methods 2024-02-26 11:56:51 +01:00
Gavin King df84bcd84e HHH-17772 support Jakarta Data PageRequest as a parameter 2024-02-25 23:25:22 +01:00
Gavin King be448afdab HHH-17772 allow lifecycle methods accepting arrays/iterables
as required by Jakarta Data
2024-02-25 21:34:20 +01:00
Gavin King f73d7aac9f add test coverage for Option and Stream return types 2024-02-25 21:34:20 +01:00
Gavin King bfce032efc add test coverage for Option and Stream return types 2024-02-25 21:34:20 +01:00
Gavin King 50c67a410e reduce visibility of repository constructor 2024-02-25 21:34:20 +01:00
Gavin King b039eecd8e allow query and finder methods to return Stream
required by Jakarta Data spec
2024-02-25 21:34:20 +01:00
Gavin King 18bbbbb865 allow query and finder methods to return Optional
required by Jakarta Data spec
2024-02-25 21:34:20 +01:00
Gavin King 7e9b55ff92 HHH-17772 add option to suppress JD metamodel
- also squash an error
- and improve report bug reporting
2024-02-24 22:45:15 +01:00
Gavin King 582d736062 HHH-17772 rework processor bookkeeping 2024-02-24 22:45:15 +01:00
Gavin King 67a5590316 HHH-17772 Jakarta Data static metamodel 2024-02-24 22:45:15 +01:00
Gavin King a23792ca1b HHH-17772 Jakarta Data static metamodel 2024-02-24 22:45:15 +01:00
Gavin King d6125e21f5 HHH-17772 make Jakarta Data repositories into proper CDI components 2024-02-24 14:49:06 +01:00
Gavin King 235fc26ee6 more null checking, and some refactoring 2024-02-24 14:49:06 +01:00
Gavin King 7abe8f5f2b split out an inner class 2024-02-24 14:49:06 +01:00
Gavin King 9aa2f631f1 add a jakartaDataStyle option to processor 2024-02-24 14:49:06 +01:00
Gavin King 43905c657f some cleanup in static metamodel code 2024-02-24 14:49:06 +01:00
Gavin King 862a967a17 HHH-17772 misc improvements to impl of Sort parameters 2024-02-24 01:42:16 +01:00
Gavin King 2281805e91 HHH-17772 tolerate vararg Sort parameters 2024-02-24 01:42:16 +01:00
Gavin King df79c4491a HHH-17772 add additional permutation to test 2024-02-24 01:42:16 +01:00
Gavin King 3539551305 HHH-17772 Jakarta exception conversion for @Query methods 2024-02-24 01:42:16 +01:00
Gavin King 25d7cc8681 HHH-17772 Jakarta exception conversion for @Find methods 2024-02-24 01:42:16 +01:00
Gavin King 394c9ef03f HHH-17772 exclude Jakarta Data tests on older JDK 2024-02-24 01:42:16 +01:00
Gavin King 0cf8d18c3d HHH-17772 exception mappings for lifecycle methods 2024-02-24 01:42:16 +01:00
Gavin King 9c707dd4e8 HHH-17772 map @Save lifecycle annotation to upsert() 2024-02-24 01:42:16 +01:00
Gavin King 83595ea461 HHH-17772 add tests 2024-02-24 01:42:16 +01:00
Gavin King 0bc198f265 HHH-17772 handle missing static constant refs 2024-02-24 01:42:16 +01:00
Gavin King 1e32439b3c HHH-17772 interpret @Repository(dataSource) as a CDI @Named qualifier
This is sort of the simplest possible thing to do.
2024-02-24 01:42:16 +01:00
Gavin King 484fcb2984 HHH-17773 case-insensitive ordering 2024-02-24 01:42:16 +01:00
Gavin King d0f3cdeb96 HHH-17772 support for Order 2024-02-24 01:42:16 +01:00
Gavin King 7a52cf9659 HHH-17772 better support for Sort 2024-02-24 01:42:16 +01:00
Gavin King bd63c4af50 HHH-17772 support for Limit and Sort 2024-02-24 01:42:16 +01:00
Gavin King 4cfc3fb97d HHH-17772 support Jakarta Data @OrderBy 2024-02-24 01:42:16 +01:00
Gavin King aed8244dae HHH-17772 support Jakarta Data @By and @Param 2024-02-24 01:42:16 +01:00
Gavin King 5be9463364 HHH-17772 initial, rudimentary support for Jakarta Data annotations 2024-02-24 01:42:16 +01:00
Christian Beikov 73221d0090 HHH-17765 Support some special chars in query method queries 2024-02-21 17:18:37 +01:00
Gavin King 24db2b04cc HHH-17661 add test for issue 2024-02-20 10:46:24 +01:00
Gavin King 9ba93b7060 HHH-17613 - don't use reduce() 2024-02-20 10:46:24 +01:00
Cedomir Igaly b17aa9674f HHH-17613 - Adding recursion; avoiding regular expression 2024-02-20 10:37:01 +01:00
Cedomir Igaly da41e5b4be HHH-17613 - Fixing type import 2024-02-20 10:37:01 +01:00
Cedomir Igaly f191d397c1 HHH-17613 - Test case demonstrating the problem 2024-02-20 10:37:01 +01:00
Gavin King 3769d4c233 use requiresService() much more consistently
we should usually avoid the use of getService() unless
there is an explicit null test on the client side
2024-02-16 23:18:30 +01:00
Gavin King f1e099b8e8 HHH-17745 @HQL methods accepting embeddables
and replace usages of getJavaType().getTypeName(), since
using getTypeName() directly is much more freindly to the
annotation processor (as well as less verbose)
2024-02-16 21:08:49 +01:00
Gavin King d7fe31643a HHH-16048 add 'hibernate.query.hql.portable_integer_division'
consistent interpretation of division on MySQL and Oracle
2024-02-16 16:23:35 +01:00
Gavin King f111d1a1a1 try to report more info from annotation processor failure 2024-02-14 15:14:23 +01:00
Gavin King 97099c0280 better handling of instantiation for @HQL methods 2024-02-12 20:53:09 +01:00
Gavin King e5a994bfa1 fix typechecking of primitives in instantiations for query methods 2024-02-12 00:16:06 +01:00
Gavin King d09d6ffdf0 HHH-17729 move validation of constructors in HQL instantiations to SemanticQueryBuilder
test for query method generation
2024-02-12 00:16:06 +01:00
Gavin King 24937b4e67 HHH-17729 move validation of constructors in HQL instantiations to SemanticQueryBuilder
report SemanticExceptions with the query string
fix some warnings in ReflectHelper
2024-02-12 00:16:06 +01:00
Gavin King cb1b276ff8 validate the type arg of Order parameters in @Find and @HQL methods 2024-02-07 21:03:23 +01:00
Yanming Zhou 508df48686 Rename variable for better readability 2024-02-07 15:54:39 +01:00
Yanming Zhou c804ff3ac5 HHH-17719 Supports boolean as return type of mutation query method 2024-02-07 14:10:48 +01:00
Gavin King da0e327d09 validate parameters of @SQL query 2024-02-07 14:10:24 +01:00
Yoann Rodière 3b31351234 Move setting of net.bytebuddy.experimental to the Jenkinsfile
The hope is that whenever we add a new JDK version to test,
we'll notice this setting, will try to remove it and upgrade bytebuddy
if necessary. This would avoid mess-ups like the one that caused
https://github.com/hibernate/hibernate-orm/pull/7790
2024-02-06 13:42:21 +00:00
Gavin King 838bed00eb better handling of the session variable in repositories 2024-02-06 13:45:12 +01:00
Gavin King f4d17be10c small fixes to @Find and @HQL methods
don't include session parameter type where not necessary
2024-02-03 01:28:49 +01:00
Gavin King d96b5dfffc clarify use of Order and Page with @Find
[It's allowed!]
2024-02-02 18:12:27 +01:00
Andrea Boriero 3122c81844 HHH-17326 deprecated lazyLoading no longer working 2024-01-31 11:57:48 +01:00
Yoann Rodière 1ac21756c6 HHH-17683 Reproducer for jpamodelgen generating wrong constructor for metamodel of entities whose methods contain a `static EntityManager getEntityManager()` 2024-01-30 12:44:54 +01:00
Gavin King c829d9e5bf HHH-17683 never look for session getters in mapped superclasses or embeddables 2024-01-29 21:18:15 +01:00
Yanming Zhou df93517e1d HHH-14429 Restore <fileset/> support for ant enhance task
fix regression introduced by HHH-11795
2024-01-26 10:59:31 +01:00
Steve Ebersole 58173f92ee HHH-17559 - Prefer Java Time handling for all temporal values 2023-12-22 08:23:06 -06:00
Jan Schatteman f8bfb85ce1 HHH-17253 - Fix for StackOverflowError in static metamodel generator
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-12-19 19:07:03 +01:00
Christian Beikov fc43836c7e HHH-17253 Test circular type variable stack overflow in metamodel generator 2023-12-19 19:07:03 +01:00
Réda Housni Alaoui 1d956eb400 HHH-17494 Metamodel generator produce an uncompilable class when an EntityGraph name contains a comma 2023-12-06 19:08:28 +01:00
Steve Ebersole 48451d2e2f HHH-17362 - Define dependencies of hibernate-jpamodelgen as api
https://hibernate.atlassian.net/browse/HHH-17362
2023-11-17 13:11:24 -06:00
Steve Ebersole 5b6373fb34 HHH-17362 - Define dependencies of hibernate-jpamodelgen as api
https://hibernate.atlassian.net/browse/HHH-17362
2023-11-17 08:13:48 -06:00
Christian Beikov 5ea40e255d HHH-14822 Support custom tenant identifier type 2023-10-25 18:58:20 +02:00
Jan Schatteman 763a70f633 HHH-17314 - Add a configuration option to ignore jdbc parameters in native queries
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-10-23 17:42:00 +02:00
Christian Beikov 627608e65c HHH-17323 Add annotation processor for tests explicitly 2023-10-16 12:51:52 +02:00
Steve Ebersole da522846d8 HHH-17157 - Some improvements to the metamodel generator documentation 2023-10-11 12:20:36 -05:00
Jan Schatteman d325a5e90d HHH-16515 - Get rid of nullness suppression in jpamodelgen TypeUtils
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-09-20 09:14:41 +02:00
Gavin King 5737235bf9 add another test for @HQL method return types 2023-09-05 20:05:24 +02:00
Gavin King 14151fdb97 improvements to validation of @HQL method return type 2023-09-05 19:29:26 +02:00
Gavin King fad11299f3 HHH-17166 fix broken logic for inferring that @HQL method is a mutation 2023-09-05 19:29:26 +02:00
Gavin King 412217d011 HHH-17165 fix isGetter(), isSetter() in AnnotationMetaEntity 2023-09-05 19:29:26 +02:00
Gavin King a541a64eec search supertypes for session getter in repository type 2023-09-02 21:50:57 +02:00
Gavin King 2cfe93cd88 fix @Find method with varargs Order parameter 2023-09-02 20:11:43 +02:00
Steve Ebersole a2d45a2679 HHH-16962 - General documentation improvements
HHH-17141 - Prepare for 6.3.0 release

https://hibernate.atlassian.net/browse/HHH-16962
https://hibernate.atlassian.net/browse/HHH-17141
2023-08-29 13:20:19 -05:00
Christian Beikov 13bc7ff38c HHH-16952 Discover embeddable types through @Embedded annotation for enhancement in a pre-discovery phase 2023-08-28 18:24:45 +02:00
Sanne Grinovero f49535d397 Migrate type from Serializable[] to String[] 2023-08-23 15:05:45 +02:00
Christian Beikov 689d16216d Fix running on JDK 22 2023-08-16 18:53:22 +02:00
Christian Beikov 7c697f7e37 Fix Gradle toolchain issues 2023-08-16 09:13:53 +02:00
Steve Ebersole 761ec95145 HHH-17047 - Follow up tasks for Gradle 8.2 upgrade
- toolchains
- lazy Task creation
- documentation (documentation/ and release/) tasks
2023-08-14 10:38:00 -05:00
Steve Ebersole 306adef2a7 General Gradle work - toolchains 2023-08-14 07:56:52 -05:00
Andrea Boriero 126a28e8f4 Fix jpamodelgen build error with Gradle 8 2023-08-04 14:49:21 +02:00
Gavin King 6c435b02c9 support optional 'from' in @HQL query method generation
(as desired by Stef)
2023-07-23 15:51:14 +02:00
Gavin King 8794f86ad2 allow criteria-based @Find methods to specify Page and Order
This is not necessary for @Id or @NaturalId-based @Find methods,
because they don't return multiple results.
2023-07-23 14:23:35 +02:00
Gavin King 94f94f745c HHH-16955 add test for query method generation with 'join fetch' 2023-07-20 17:43:33 +02:00
Gavin King 3e1411f6c0 fix use of java.text.SimpleDateFormat and java.util.Date in metamodel generator 2023-07-20 15:10:56 +02:00
Jan Schatteman 2e73795e4b HHH-16515 - Add o.h.exception to nullness checking
HHH-16515 - Add o.h.integrator to nullness checking

HHH-16515 - Add o.h.service to nullness checking

HHH-16515 - Add o.h.engine.jndi to nullness checking

HHH-16515 - Add o.h.engine.config to nullness checking

Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-07-17 21:56:22 +02:00
Gavin King 0918791f47 HHH-16633 support mutation query methods 2023-07-16 19:09:32 +02:00
Gavin King 5cee742698 HHH-16940 add typesafe ref to ManagedType in metamodel classes 2023-07-16 15:27:12 +02:00
Gavin King 52bfbe06f2 HHH-16633 validate the return type of @HQL query methods
(including constructors for record returns)
2023-07-16 15:27:12 +02:00
Gavin King 7634795f83 improved reasoning around nullability of finder method parameters 2023-07-16 09:10:40 +02:00
Jan Schatteman 314f2d7b7a Revert "HHH-16515 - Add o.h.exception to nullness checking"
This reverts commit c5c3bb8ac8.
2023-07-15 00:38:45 +02:00
Gavin King ec8d574e4a path expressions in finder method parameter names
this sounds a bit crazy but why not?
2023-07-14 22:26:48 +02:00
Jan Schatteman c5c3bb8ac8 HHH-16515 - Add o.h.exception to nullness checking
HHH-16515 - Add o.h.integrator to nullness checking

HHH-16515 - Add o.h.service to nullness checking

HHH-16515 - Add o.h.engine.jndi to nullness checking

HHH-16515 - Add o.h.engine.config to nullness checking

Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2023-07-14 21:42:25 +02:00
Gavin King ae2f73a315 use @Nonnull annotation in generated named query method 2023-07-14 17:50:22 +02:00
Gavin King ec830945e6 HHH-16633 improve jdoc for query methods 2023-07-14 15:49:51 +02:00
Gavin King ded5451436 HHH-16633 allow finder and query methods to accept the session (better impl) 2023-07-14 15:49:51 +02:00
Gavin King 803cd6aa1e HHH-16633 allow finder and query methods to accept the session type as a parameter 2023-07-14 15:49:51 +02:00
Gavin King 96e6476199 HHH-16633 no need to cast to SelectionQuery to call setPage() 2023-07-13 12:41:23 +02:00
Gavin King 5c5d2c2f94 HHH-16633 test for AccessType.PROPERTY in @Find method parameter matching 2023-07-13 10:59:32 +02:00
Gavin King 8681d702a4 HHH-16633 support AccessType.PROPERTY in @Find method parameter matching 2023-07-13 10:59:32 +02:00
Gavin King 45af5c2f5a oops, remove a debugging statement that I accidentally committed 2023-07-12 21:43:51 +02:00
Gavin King 59fdc46254 HHH-16920 initial prototype support for Reactive in query/finder method generation 2023-07-11 16:30:47 +02:00
Gavin King 70a953e7a8 HHH-16633 completely rework validation for parameters of @HQL query methods 2023-07-11 00:21:19 +02:00
Gavin King b1bdd74432 HHH-16633 support @IdClass in finder methods 2023-07-11 00:21:19 +02:00
Gavin King 10b17a6430 HHH-16633 unbreak support for @Embeddable Java records 2023-07-11 00:21:19 +02:00
Gavin King c8c5d05330 remove incorrect comment 2023-07-10 15:00:18 +02:00
Gavin King 447fa30a89 HHH-16633 add CDI @Dependent annotation if in build path 2023-07-10 14:36:32 +02:00