When using an alias in a query, verify using "." as a proper separator against both alias projections as the primary alias to ensure that a Sort property doesn't overlap with an alias.
See #3054
We now apply the scroll position correctly regardless of whether the query is limited.
Previously, we applied the position only if the query was limited.
Closes#3015
delegate.getResultWindow() the first time it's called in this method already produces a limit-sized result set, captured in resultsToUse. Running it through the same getResultWindow a second time in unnecessary.
Original Pull Request: #3021
AOT no longer needs this bean to be synthetic to work properly. And this attribute hampers BeanPostProcessors from being applied.
See #2730
Original Pull Request: #2866
JOIN clauses can have aliases as well, despite not using an AS reserved word. The HQL query parser needs to handle this.
See #2960, #1066, #664
Original Pull Request: 2967
Give users that have too complex of a query a list of where to go should Spring Data JPA not offer what they need in query support.
See #3005
Original Pull Request: #3006
1. null check on variable `metadata` is missing in method `existsById`
2. `CrudMethodMetadata::getComment` should be `@Nullable`
Closes#2991
Original pull request: #2995
Interface-based projections used to NOT work when the query had a subquery in it. But with the new query parser, it already handles it. So this simply captures the test providing that corner case.
See #2008
Original Pull Request: #420
Simplify code flow. Introduce flag to capture whether a stored procedure uses collection return types.
Remove unconditionally the Optional converter as we're already on Java 17 and do not require the Java 8 guard.
See #2915
Original pull request: #2938
If the JPA provider's implementation of StoredProcedureQuery implements AutoCloseable, invoke the close method when completed.
Resolves#2915.
Original pull request: #2938
Potentialy subqueries can crop up inside INSERT statements. We need to handle this as well.
NOTE: INSERT statements aren't defined in JPQL, so this problem doesn't overlap with standard JPA queries.
See #2977
Because ROUND is a reserved word yet is NOT on the list of approved functions, it fails to get parsed. Simply dropping it from the list of reserved words makes it succeed in the HQL query parser.
See #2964
Original Pull Request: #2966