Commit Graph

599 Commits

Author SHA1 Message Date
Čedomir Igaly 62a89e6d30 HHH-18278 - Test case:
Metamodel generator should generate classes
			org.hibernate.processor.test.packageinfo.Message_
		and
			org.hibernate.processor.test.packageinfo.packageinfo_
		With later containing fields QUERY_FIND_BY_KEY and QUERY_FIND_BY_ID_AND_KEY,
		and method findByKey
2024-06-27 18:12:32 +02:00
Gavin King 087d0b1208 remove some code that is apparently unnecessary
at least: all the tests pass without it

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-27 17:21:47 +02:00
Gavin King 6ac0818c14 Update Jakarta Data dependency to 1.0
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-27 17:21:47 +02:00
Christian Beikov f7093239d9 HHH-18125 Fix type of embeddable discriminator paths and type literals
Build and store the embeddable discriminator type in the Component. Also, change the type of entity/embeddable type literals to the discriminator type (or `Class` when not polymorphic).
2024-06-12 13:18:03 +02:00
Andrea Boriero 8166086957 Upgrade Gradle to 8.8, upgrade checkframework to 0.6.40, fix HibernateProcessor resources creation causing whole tests recompilation 2024-06-11 23:46:57 +02:00
Christian Beikov 5a889f7d56 HHH-17782, HHH-17901 Support enum literals in annotation processor HQL validation 2024-06-06 16:40:28 +02:00
Gavin King dc0442ad01 use TypeElement instead of String
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-03 21:21:22 +02:00
Gavin King cdb92a3049 correctly handle embeddable inheritance in HibernateProcessor
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-03 21:21:22 +02:00
Gavin King 14631ddd8f change default AccessType to FIELD in Processor
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-03 21:21:22 +02:00
Gavin King 9fbdafe318 HHH-13620, HHH-13869 fix handling of nested embeddable access type in Processor
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-03 21:21:22 +02:00
Gavin King e895283c53 HHH-18216 only do it for generated ids
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-02 13:32:51 +02:00
Gavin King 1a5456dde1 HHH-18216 add StatelessSession.getIdentifier()
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-02 13:32:51 +02:00
Gavin King 386bb1138a HHH-18216 delegate @Save to insert() when entity has no id assigned
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-06-02 13:32:51 +02:00
Steve Ebersole 88ec2fe38b Fix extended test SourceSets for hibernate-processor 2024-05-30 07:24:29 -05:00
Gavin King 9ac37a19c0 HHH-18179 incorrect warning issued for mappedBy with property access
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-29 17:57:20 +02:00
Gavin King a33b340778 fix a comment
for some reason my fingers always make this mistake

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-27 09:34:47 +02:00
Gavin King ebd8619f73 HHH-18162 index creation in HibernateProcessor
This stores an index of entities and enum values in the
entity.index directory. This approach has some downsides
but works around some limitations of the processor API.

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-23 23:09:07 +02:00
Cedomir Igaly 00aad06520 HHH-18106 - Implemented Java constant field resolution for MockSessionFactory 2024-05-22 18:39:49 +02:00
Cedomir Igaly 8d2a0047e0 HHH-18106 - Test case 2024-05-22 18:39:49 +02:00
Cedomir Igaly e73eb458b4 HHH-18106 - Handling source element in @WithClasses annotation 2024-05-22 18:39:49 +02:00
Cedomir Igaly 4e41ee9bcd HHH-18106 - Duplicated methods working with Class to accept class name String 2024-05-22 18:39:49 +02:00
Cedomir Igaly 83fe6f06bc HHH-18106 - Added source element to list Java sources from resource directory structure 2024-05-22 18:39:49 +02:00
Marco Belladelli 2e9acf1ded HHH-18125 Support for `type()` and `treat()` operators for Embeddables 2024-05-22 15:59:03 +02:00
Gavin King cd577a813b HHH-18019 fix package present detection on ecj
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-22 12:36:23 +02:00
Gavin King b30b510381 HHH-18149 fix for HibernateProcessor on ecj
A typecast which works on javac doesn't work on ecj,
but I agree that ecj is correct here.

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-22 11:27:14 +02:00
Andrea Boriero 31e3be15bf HHH-17514 Add test for issue to show that it has alredy been resolved 2024-05-21 09:48:44 +02:00
Gavin King 5a89a31e63 HHH-18137 private fields inherited from supertypes in HibernateProcessor
Elements.getAllMembers() does not do what it appears to do

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-20 22:41:06 +02:00
Stéphane Épardaud 1948c8f2bd HHH-17960: Fix proper default session type for JD repositories even in Quarkus
And tests
2024-05-14 17:04:04 +02:00
Cedomir Igaly 9f06bbb69e HHH-18102 Patch fixing the problem 2024-05-13 18:37:45 +02:00
Cedomir Igaly 6bf358d324 HHH-18102 - Test case showing the problem 2024-05-13 18:37:45 +02:00
Cedomir Igaly fd3cb949a7 HHH-18102 Little bit of cosmetics to allow merging with PR 8095; it is not affecting any logic 2024-05-13 18:37:45 +02:00
Gavin King fec6f862d9 fix problem in definition of @WithProcessorOption
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-07 20:20:16 +02:00
Gavin King 503cd3e9ed add test for include/exclude
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-07 20:20:16 +02:00
Gavin King ccaefc168a introduce include/exclude options for HibernateProcessor
and rename @Suppress -> @Exclude

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-05-07 20:20:16 +02:00
Christian Beikov 940c898ecf Various improvements:
* Sprinkle some @Nullable annotations to better understand nullness guarantees
* Fix some potential NPEs
* Improve Oracle array_agg emulation
* Prepare for aggregate component array support
2024-05-03 16:49:39 +02:00
Gavin King 5ab2d83bd8 produce meaningful error if reactive repo method does not return Uni
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-27 00:07:10 +02:00
Gavin King adec141a7f fix error message when repository backed by regular session returns Uni
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-14 23:55:25 +02:00
Gavin King b7af56ac76 allow @Find @Nullable and @Query @Nullable
to return null from a repository method

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 23:59:54 +02:00
Gavin King f6b366fa41 better impl of repository id lookup methods returning Optional
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 22:40:46 +02:00
Gavin King 04d22686bb improve Jakarta Data exception messages
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 19:42:26 +02:00
Gavin King 23dc51d291 fix exceptions thrown from by-id @Find method
previously, for SS it would just return null

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 19:42:26 +02:00
Gavin King 0da311e022 fix exceptions thrown from JD lifecycle method
SS does not do exception translation

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 19:42:26 +02:00
Gavin King a2ac984162 slightly simplify generated code for pagination using static imports
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-10 17:08:38 +02:00
Gavin King 98c79ce53e update generated pagination code to new JD PageRequest API
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-10 15:54:34 +02:00
Gavin King ec8cdd9dbb retain type use annotation in return types and simplify code
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-06 21:43:59 +02:00
Gavin King 4c1285b609 better cooperation with other Jakarta Data implementations
and with Scott's preprocessor

produce WARNINGs instead of ERRORs in some cases

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-06 17:40:21 +02:00
Gavin King baa24d6889 add a test and a comment
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-06 11:49:05 +02:00
Gavin King e43ae41f2d properly include repeatable annotations in @SupportedAnnotationTypes
this is required (see javadoc of Processor)

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-06 11:49:05 +02:00
Gavin King b0368e7135 make Jakarta Data static metamodel into interfaces
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-05 23:52:21 +02:00
Gavin King 66838ef44b add to tests
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-05 01:26:25 +02:00
Gavin King 15a2d5cb8b validate that paginated query methods have a well-defined ordering
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-05 01:26:25 +02:00
Gavin King a8f6872249 sync to latest spec and removal of sorting from PageRequest
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-05 01:26:25 +02:00
Gavin King ceefdd162a improve 'this' emulation for @Query methods
for Jakarta Data TCK work

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-05 01:26:25 +02:00
Gavin King 6b1b8d65ed look for primary entity type in indirectly-implemented interfaces
for Jakarta Data TCK work

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-04 12:16:45 +02:00
Gavin King ff0e676825 add tests reflecting things in Jakarta Data TCK
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-04 12:16:45 +02:00
Gavin King e748619dd6 remove unnecessary code, fixing bug in generated imports
for Jakarta Data TCK work

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-04 12:16:45 +02:00
Gavin King dcacbadd5f tolerate Set + Collection for multivalued @Query parameters
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-03 12:56:22 +02:00
Gavin King 8992cbbbde simplification, use getAllMembers() in processor
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-02 11:11:25 +02:00
Gavin King f51d8dbe0d support for queries defined in intermediate classes
for our work on the Jakarta Data TCK

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-02 11:11:25 +02:00
Gavin King e21d139a84 fix to @OrderBy for @Query methods with primary entity type
don't think this is even strictly-speaking required by Jakarta Data
but we will allow it

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-31 20:58:49 +02:00
Gavin King c7852feb55 fix another bug in detecting when a repo method param is multivalued
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-31 20:13:33 +02:00
Gavin King 38a41e0044 fix a bug in detecting when a repo method param is multivalued
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-31 20:13:33 +02:00
Gavin King 70f906045a when CDI is missing, do still add an @Inject annotation on the constructor
at least when jakarta.inject is available

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-31 14:52:41 +02:00
Gavin King c945b16b4f when CDI is missing, don't create default constructor for injection
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-31 00:05:11 +01:00
Gavin King 6c91c0c234 add a couple of extra tests for Jakarta Data
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-30 15:49:30 +01:00
Gavin King dd7aa947c1 fix for Bean Validation annotations on @Query method parameters
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-30 15:49:30 +01:00
Gavin King f6add9dbbb simplify the generated code for cursored pagination
as suggested by Nathan Rauh

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 23:47:44 +01:00
Gavin King 6beb011369 fix cursored previous page navigation
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 16:48:15 +01:00
Gavin King 74c026b27d fix bug where type annotations got generated onto Class literals
needed for Jakarta Data TCK

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 16:48:15 +01:00
Gavin King 3370dc81bc fix bug in handling of 'this', fix error locations for HQL validation
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 16:48:15 +01:00
Gavin King eb1b78ff0b allow binding Lists to 'in' condition parameters for @Query method
required by Jakarta Data, and generally very useful!

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 16:48:15 +01:00
Gavin King 473965f228 allow long as return type of mutation @Query method
required by Jakarta Data

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 16:48:15 +01:00
Gavin King b281d8b801 HHH-17882 test for list of warnings in addSuppressWarningsAnnotation
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 12:42:02 +01:00
Gavin King 3cfec2fd91 HHH-17882 accept a list of warnings to suppress in addSuppressWarningsAnnotation
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 12:42:02 +01:00
Gavin King b88d496c76 tolerate badly-typed PageRequest parameters
as required by Jakarta Data TCK

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 10:50:53 +01:00
Gavin King 024fd31a3c minor cleanup to annotation handling in processor
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 10:22:37 +01:00
Gavin King f32bb7276f let a handwritten metamodel "override" the generated one
used in the JD TCK (ffff)

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-29 08:43:21 +01:00
Gavin King b755048551 fix a bug in @Query handling
add a test for empty query string in @Query

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 23:09:48 +01:00
Gavin King ce317960fc handle unqualified enum values in @Query
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 22:32:41 +01:00
Gavin King f0c9d4ec4c make fully-qualified enum literals in @Query pass the validation
JD examples and TCK require this, though it's not really correct

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 22:32:41 +01:00
Christian Beikov d423b52be3 HHH-17904 Introduce config property to enable native enum type 2024-03-28 17:02:20 +01:00
Gavin King bab8b98a59 hack in acceptance of PageRequest<?>
JD examples and TCK require this, though it's not really correct

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 02:00:16 +01:00
Gavin King ccbb84a6c4 fix bug in checking of PageRequest type arg
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 02:00:16 +01:00
Gavin King 8aaf0c7c9d support 'this' with @Query repository methods
in a very temporary way

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 00:41:01 +01:00
Gavin King e1bcd01321 fix handling of @By("id(this)")
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 00:41:01 +01:00
Gavin King 2955e0b91d spec-compliant inference of entity type in @Query
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 00:41:01 +01:00
Stéphane Épardaud 975f471c85 Update javax.transaction to jakarta.transaction 2024-03-27 16:26:27 +01:00
Gavin King ed9d7c60a6 HHH-17895 add comment
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-27 11:09:10 +01:00
Gavin King 3315135d90 HHH-17895 workaround for bug in Java 21
also be more careful about type annotations in comparing types

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-27 11:09:10 +01:00
Gavin King 823d0de8d5 HHH-17895 tests for Bean Validation annotations in Jakarta Data
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-27 11:09:10 +01:00
Gavin King ccf5fcc5b2 HHH-17891 support method-level interceptors for JD repositories
as required by the spec

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 20:43:48 +01:00
Gavin King c08b8f8c38 HHH-17891 support toplevel interceptors for JD repositories
as required by the spec

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 20:43:48 +01:00
Gavin King e37ca54981 eliminate duplicate error messages
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 17:57:52 +01:00
Gavin King 526ab68264 test and fix for bug in repo method parameter checking
this lead to a TCK failure

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 17:57:52 +01:00
Gavin King d44f48bcd2 more information about errors relating to inherited members in processor
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 16:10:37 +01:00
Gavin King b4c1b636c5 experimental support for reactive Jakarta Data repositories
some cleanup

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 13:23:47 +01:00
Gavin King c5f9ada2fc experimental support for reactive Jakarta Data repositories
this time with uni-fied access to the M.SS

Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-26 13:23:47 +01:00
Gavin King d52edeb0e5 experimental support for reactive Jakarta Data repositories 2024-03-26 13:23:47 +01:00
Gavin King 7b189d0200 support for 'id(this)'
just changed this in JD
2024-03-25 22:25:44 +01:00
Gavin King 6eb01d2832 use getAllMembers() when resolving Jakarta Data paths 2024-03-25 13:27:18 +01:00