Commit Graph

656 Commits

Author SHA1 Message Date
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
gtoison 08127f28df HHH-17994 defensive check for the case when classNames wasn't set 2024-04-22 15:15:44 -05: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