Closed
Description
We should explore how we could switch from Criteria Queries to JPQL queries as Hibernate has a much better efficiency running String-based queries:
CriteriaBuilder query
Benchmark Mode Cnt Score Error Units
RepositoryFinderTests.derivedFinderMethod thrpt 5 110633,482 ± 3980,501 ops/s
String-based query
Benchmark Mode Cnt Score Error Units
RepositoryFinderTests.derivedFinderMethod thrpt 5 344518,379 ± 24561,002 ops/s
We would need to build our own JpqlQueryBuilder
that mimics CriteriaBuilder
in terms of expressions, predicates and automated inclusion of joins.
Collection of related tickets:
- Support for sorting by subclass properties inside repository methods #3593
- Consider
NULLS
precedence usingSort
for Criteria Queries #3587 - Derived Method Unneccessarily Joins for filter #3423
- Use implicit join to create Predicate if possible #3374
- Translate
JpaSort.unsafe(…)
used with Specifications to order-byExpression
#3172