Make sure to append space after order by clause and fix alias detection for wrapped sub select.
Also make sure to ignore alias used in subselect so they do not conflict with root ones.
Render order by only on full select if set operator is present in EQL.
Original pull request: #3429Closes#3427
We now no longer fall back to an absent query when a NamedQuery construction fails with IllegalArgumentException. IllegalArgumentException is also used by the JPA API to indicate an absent query. In other cases, where we fail with IllegalArgumentException, we fell back to query derivation as handling IAE as signal for an absent query.
We already have better query absence checks in place so we can remove the try/catch blocks in favor of the named query presence check.
Closes#3550
Annotation to declare native queries directly on repository methods. NativeQuery acts as a shortcut for @Query(nativeQuery = true)
Closes#3155
Original pull request: #3353
This commit moves EQL and HQL parsers to QueryTokenStream and optimizes composite renderers as well as JSQLParser usage.
We also avoid Single-thread construction on each parse run to avoid thread creation overhead.
See: #3309
This commit introduces a QueryTokenStream to reduce the number of stream and collect operations to estimate the size before iterating entries.
See: #3309
This commit introduce eager alias and projection detection and aims to cache expensive calls.
It also revises JPQL parsers and enhancers into single-class hierarchy and removes strange parameter verification (as it was wrong anyway).
See: #3309Closes: #3311
This commit turns existing query transformers into introspectors using eager parsing and detection of query parts.
Query transformation has also been split up into dedicated Count and Sort Query parts.
To reduce duplicate code across the existing parses we introduced a reusable functional configuration.
For better testing support a query assertion has been introduced to query parser tests and we adjusted invalid formatting.
See: #3309Closes: #3326
Reflect allowed null arguments in both documentation as well as supporting annotations.
Going forward we should consider if there is a possibility to restructure Specification and the Predicate handling to avoid this at all (#3521).
See: #3036
Store the position of each output parameter in ProcedureParameter so that it can be used when extracting them from the result set.
Resolves: #3460
Original Pull Request: #3463