Package org.hibernate.query.criteria
Class CriteriaDefinition<R>
java.lang.Object
org.hibernate.query.criteria.spi.HibernateCriteriaBuilderDelegate
org.hibernate.query.criteria.CriteriaDefinition<R>
- Type Parameters:
R
- the query result type
- All Implemented Interfaces:
AbstractQuery<R>
,CommonAbstractCriteria
,CriteriaBuilder
,CriteriaQuery<R>
,CriteriaSelect<R>
,Serializable
,HibernateCriteriaBuilder
,JpaCriteriaBase
,JpaCriteriaNode
,JpaCriteriaQuery<R>
,JpaCriteriaSelect<R>
,JpaCteContainer
,JpaQueryableCriteria<R>
,JpaSelectCriteria<R>
@Incubating
public abstract class CriteriaDefinition<R>
extends HibernateCriteriaBuilderDelegate
implements JpaCriteriaQuery<R>
A utility class that makes it easier to build criteria queries.
From within an initializer block of a (usually anonymous) subclass, all operations of the
CriteriaBuilder
and CriteriaQuery
may be called without the need for
specifying the target object.
For example:
sessionFactory.inTransaction(session -> { List<Book> books = new CriteriaDefinition<>(sessionFactory, Book.class) {{ var book = from(Book.class); where(like(book.get(Book_.title), "%Hibernate%")); orderBy(desc(book.get(Book_.publicationDate)), asc(book.get(Book_.isbn))); book.fetch(Book_.authors); }} .createSelectionQuery(session) .setMaxResults(10) .getResultList(); ... });
A CriteriaDefinition
may even be used to modify a base HQL or criteria query:
sessionFactory.inTransaction(session -> { List<Book> books = new CriteriaDefinition<>(sessionFactory, Book.class, "from Book left join fetch authors where type = BOOK") {{ var book = (JpaRoot<Book>) getSelection(); where(getRestriction(), like(book.get(Book_.title), "%Hibernate%")); orderBy(desc(book.get(Book_.publicationDate)), asc(book.get(Book_.isbn))); }} .createSelectionQuery(session) .getResultList(); ... });For queries which don't change between executions, the
CriteriaDefinition
may be
safely built and cached at startup:
// build and cache the query static final CriteriaQuery<Book> bookQuery = new CriteriaDefinition<>(sessionFactory, Book.class) {{ var book = from(Book.class); where(like(book.get(Book_.title), "%Hibernate%")); orderBy(desc(book.get(Book_.publicationDate)), asc(book.get(Book_.isbn))); book.fetch(Book_.authors); }}; ... // execute it in a session sessionFactory.inTransaction(session -> { List<Book> books = session.createQuery(bookQuery) .setMaxResults(10) .getResultList(); ... });A
CriteriaDefinition
may be used to modify another CriteriaDefinition
:
var bookFilter = new CriteriaDefinition<>(sessionFactory, Book.class) {{ where(like(from(Book.class).get(Book_.title), "%Hibernate%")); }}; long count = new CriteriaDefinition<>(bookFilter, Long.class) {{ select(count()); }} .createSelectionQuery(session) .getSingleResult(); var books = = new CriteriaDefinition<>(bookFilter) {{ var book = (Root<Book>) getRootList().get(0); book.fetch(Book_.authors); orderBy(desc(book.get(Book_.publicationDate)), asc(book.get(Book_.isbn))); }} .createSelectionQuery(session) .setMaxResults(10) .getResultList();
- Since:
- 6.3
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface jakarta.persistence.criteria.CriteriaBuilder
CriteriaBuilder.Case<R extends Object>, CriteriaBuilder.Coalesce<T extends Object>, CriteriaBuilder.In<T extends Object>, CriteriaBuilder.SimpleCase<C extends Object,
R extends Object>, CriteriaBuilder.Trimspec -
Constructor Summary
ConstructorsConstructorDescriptionCriteriaDefinition
(EntityManagerFactory factory, CriteriaQuery<R> baseQuery) CriteriaDefinition
(EntityManagerFactory factory, Class<R> resultType) CriteriaDefinition
(EntityManagerFactory factory, Class<R> resultType, String baseHql) CriteriaDefinition
(EntityManager entityManager, CriteriaQuery<R> baseQuery) CriteriaDefinition
(EntityManager entityManager, Class<R> resultType) CriteriaDefinition
(EntityManager entityManager, Class<R> resultType, String baseHql) CriteriaDefinition
(CriteriaDefinition<?> template, Class<R> resultType) Construct a newCriteriaDefinition
based on the givenCriteriaDefinition
.CriteriaDefinition
(CriteriaDefinition<R> template) Construct a newCriteriaDefinition
based on the givenCriteriaDefinition
, with the same query return type.CriteriaDefinition
(SessionFactory factory, CriteriaQuery<R> baseQuery) CriteriaDefinition
(SessionFactory factory, Class<R> resultType) CriteriaDefinition
(SessionFactory factory, Class<R> resultType, String baseHql) CriteriaDefinition
(SharedSessionContract session, CriteriaQuery<R> baseQuery) CriteriaDefinition
(SharedSessionContract session, Class<R> resultType) CriteriaDefinition
(SharedSessionContract session, Class<R> resultType, String baseHql) -
Method Summary
Modifier and TypeMethodDescriptionA query that returns the number of results of this query.createQuery
(EntityManager entityManager) createSelectionQuery
(QueryProducer session) distinct
(boolean distinct) fetch
(Number fetch, FetchClauseType fetchClauseType) fetch
(JpaExpression<? extends Number> fetch) fetch
(JpaExpression<? extends Number> fetch, FetchClauseType fetchClauseType) <X> JpaDerivedRoot<X>
Create and add a query root corresponding to the given subquery, forming a cartesian product with any existing roots.<X> JpaRoot<X>
from
(EntityType<X> entity) <X> JpaRoot<X>
<X> JpaRoot<X>
from
(JpaCteCriteria<X> cte) Create and add a query root corresponding to the given cte, forming a cartesian product with any existing roots.<X> JpaFunctionRoot<X>
from
(JpaSetReturningFunction<X> function) Create and add a query root corresponding to the given set-returning function, forming a cartesian product with any existing roots.<T> JpaCteCriteria<T>
getCteCriteria
(String cteName) Returns a CTE that is registered by the given name on this container, or any of its parents.Collection<? extends JpaCteCriteria<?>>
Returns the CTEs that are registered on this container.getFetch()
List<Expression<?>>
The query structure.The query structure.Return the roots as a list.getRoots()
groupBy
(Expression... grouping) groupBy
(List<Expression<?>> grouping) having
(Expression<Boolean> restriction) boolean
multiselect
(Selection<?>... selections) multiselect
(List<Selection<?>> list) offset
(JpaExpression<? extends Number> offset) <U> JpaSubQuery<U>
subquery
(EntityType<U> type) <U> JpaSubQuery<U>
where
(Expression<Boolean> restriction) <T> JpaCteCriteria<T>
with
(AbstractQuery<T> criteria) Registers the givenCriteriaQuery
and returns aJpaCteCriteria
, which can be used for querying.<T> JpaCteCriteria<T>
with
(String name, AbstractQuery<T> criteria) LikeJpaCteContainer.with(AbstractQuery)
but assigns an explicit CTE name.<T> JpaCteCriteria<T>
withRecursiveUnionAll
(AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) Allows to register a recursive CTE.<T> JpaCteCriteria<T>
withRecursiveUnionAll
(String name, AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) LikeJpaCteContainer.withRecursiveUnionAll(AbstractQuery, Function)
but assigns an explicit CTE name.<T> JpaCteCriteria<T>
withRecursiveUnionDistinct
(AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) Allows to register a recursive CTE.<T> JpaCteCriteria<T>
withRecursiveUnionDistinct
(String name, AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) LikeJpaCteContainer.withRecursiveUnionDistinct(AbstractQuery, Function)
but assigns an explicit CTE name.Methods inherited from class org.hibernate.query.criteria.spi.HibernateCriteriaBuilderDelegate
abs, acos, addDuration, addDuration, addDuration, all, and, and, and, any, array, array, array, array, arrayAgg, arrayAgg, arrayAgg, arrayAgg, arrayAppend, arrayAppend, arrayConcat, arrayConcat, arrayConcat, arrayContains, arrayContains, arrayContains, arrayContainsAll, arrayContainsAll, arrayContainsAll, arrayContainsAllNullable, arrayContainsAllNullable, arrayContainsAllNullable, arrayContainsNullable, arrayContainsNullable, arrayContainsNullable, arrayFill, arrayFill, arrayFill, arrayFill, arrayGet, arrayGet, arrayIncludes, arrayIncludes, arrayIncludes, arrayIncludesNullable, arrayIncludesNullable, arrayIncludesNullable, arrayIntersects, arrayIntersects, arrayIntersects, arrayIntersectsNullable, arrayIntersectsNullable, arrayIntersectsNullable, arrayLength, arrayLiteral, arrayOverlaps, arrayOverlaps, arrayOverlaps, arrayOverlapsNullable, arrayOverlapsNullable, arrayOverlapsNullable, arrayPosition, arrayPosition, arrayPositions, arrayPositions, arrayPositionsList, arrayPositionsList, arrayPrepend, arrayPrepend, arrayRemove, arrayRemove, arrayRemoveIndex, arrayRemoveIndex, arrayReplace, arrayReplace, arrayReplace, arrayReplace, arraySet, arraySet, arraySet, arraySet, arraySlice, arraySlice, arraySlice, arraySlice, arrayToString, arrayToString, arrayTrim, arrayTrim, asc, asc, asc, asc, asc, asin, atan, atan2, atan2, atan2, avg, avg, avg, avg, between, between, cast, cast, castTarget, castTarget, castTarget, ceiling, coalesce, coalesce, coalesce, collate, collectionAppend, collectionAppend, collectionConcat, collectionConcat, collectionConcat, collectionContains, collectionContains, collectionContains, collectionContainsAll, collectionContainsAll, collectionContainsAll, collectionContainsAllNullable, collectionContainsAllNullable, collectionContainsAllNullable, collectionContainsNullable, collectionContainsNullable, collectionContainsNullable, collectionFill, collectionFill, collectionFill, collectionFill, collectionGet, collectionGet, collectionIncludes, collectionIncludes, collectionIncludes, collectionIncludesNullable, collectionIncludesNullable, collectionIncludesNullable, collectionIntersects, collectionIntersects, collectionIntersects, collectionIntersectsNullable, collectionIntersectsNullable, collectionIntersectsNullable, collectionLength, collectionLiteral, collectionOverlaps, collectionOverlaps, collectionOverlaps, collectionOverlapsNullable, collectionOverlapsNullable, collectionOverlapsNullable, collectionPosition, collectionPosition, collectionPositions, collectionPositions, collectionPositionsList, collectionPositionsList, collectionPrepend, collectionPrepend, collectionRemove, collectionRemove, collectionRemoveIndex, collectionRemoveIndex, collectionReplace, collectionReplace, collectionReplace, collectionReplace, collectionSet, collectionSet, collectionSet, collectionSet, collectionSlice, collectionSlice, collectionSlice, collectionSlice, collectionToString, collectionToString, collectionTrim, collectionTrim, concat, concat, concat, concat, concat, conjunction, construct, construct, cos, cosh, count, count, count, count, count, countDistinct, createCriteriaDelete, createCriteriaInsertSelect, createCriteriaInsertValues, createCriteriaUpdate, createQuery, createQuery, createQuery, createTupleQuery, createWindow, cumeDist, currentDate, currentInstant, currentTime, currentTimestamp, day, degrees, denseRank, desc, desc, desc, desc, desc, diff, diff, diff, disjunction, distinctFrom, distinctFrom, duration, durationBetween, durationBetween, durationByUnit, durationDiff, durationDiff, durationScaled, durationScaled, durationScaled, durationSum, durationSum, equal, equal, except, except, except, except, except, except, exceptAll, exceptAll, exceptAll, exceptAll, exists, exp, extract, firstValue, fk, floor, format, frameBetweenFollowing, frameBetweenFollowing, frameBetweenPreceding, frameBetweenPreceding, frameCurrentRow, frameUnboundedFollowing, frameUnboundedPreceding, function, functionAggregate, functionAggregate, functionAggregate, functionWithinGroup, functionWithinGroup, functionWithinGroup, functionWithinGroup, ge, ge, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateSeries, generateTimeSeries, generateTimeSeries, generateTimeSeries, generateTimeSeries, generateTimeSeries, generateTimeSeries, generateTimeSeries, generateTimeSeries, getCriteriaBuilder, greaterThan, greaterThan, greaterThanOrEqualTo, greaterThanOrEqualTo, greatest, gt, gt, hour, ilike, ilike, ilike, ilike, ilike, ilike, in, in, in, in, indexes, intersect, intersect, intersect, intersect, intersect, intersect, intersectAll, intersectAll, intersectAll, intersectAll, isEmpty, isFalse, isMapEmpty, isMapNotEmpty, isMember, isMember, isNotEmpty, isNotMember, isNotMember, isNotNull, isNull, isTrue, jsonArray, jsonArrayAgg, jsonArrayAgg, jsonArrayAgg, jsonArrayAgg, jsonArrayAggWithNulls, jsonArrayAggWithNulls, jsonArrayAggWithNulls, jsonArrayAggWithNulls, jsonArrayWithNulls, jsonExists, jsonExists, jsonInsert, jsonInsert, jsonInsert, jsonInsert, jsonMergepatch, jsonMergepatch, jsonMergepatch, jsonObject, jsonObjectAgg, jsonObjectAgg, jsonObjectAggWithNulls, jsonObjectAggWithNulls, jsonObjectAggWithUniqueKeys, jsonObjectAggWithUniqueKeys, jsonObjectAggWithUniqueKeysAndNulls, jsonObjectAggWithUniqueKeysAndNulls, jsonObjectWithNulls, jsonQuery, jsonQuery, jsonRemove, jsonRemove, jsonReplace, jsonReplace, jsonReplace, jsonReplace, jsonSet, jsonSet, jsonSet, jsonSet, jsonTable, jsonTable, jsonTable, jsonValue, jsonValue, jsonValue, jsonValue, keys, lastValue, le, le, least, left, left, length, lessThan, lessThan, lessThanOrEqualTo, lessThanOrEqualTo, like, like, like, like, like, like, listagg, listagg, listagg, listagg, listagg, listagg, listagg, listagg, listParameter, listParameter, literal, literals, literals, ln, localDate, localDateTime, localTime, locate, locate, locate, locate, log, log, log10, lower, lt, lt, mapSize, mapSize, max, min, minute, mod, mod, mod, mode, mode, mode, mode, month, named, neg, not, notDistinctFrom, notDistinctFrom, notEqual, notEqual, notIlike, notIlike, notIlike, notIlike, notIlike, notIlike, notLike, notLike, notLike, notLike, notLike, notLike, nthValue, nthValue, nullif, nullif, nullLiteral, or, or, or, overlay, overlay, overlay, overlay, overlay, overlay, overlay, overlay, overlay, overlay, overlay, overlay, pad, pad, pad, pad, pad, pad, pad, pad, pad, pad, pad, pad, parameter, parameter, percentileCont, percentileCont, percentileCont, percentileCont, percentileDisc, percentileDisc, percentileDisc, percentileDisc, percentRank, percentRank, percentRank, percentRank, percentRank, pi, power, power, prod, prod, prod, quot, quot, quot, radians, rank, rank, rank, rank, rank, repeat, repeat, repeat, replace, replace, replace, replace, right, right, round, rowNumber, search, search, search, second, selectCase, selectCase, setReturningFunction, sign, sin, sinh, size, size, some, sort, sort, sort, sort, sort, sort, sql, sqrt, substring, substring, substring, substring, subtractDuration, subtractDuration, subtractDuration, sum, sum, sum, sum, sum, sum, sum, sumAsDouble, sumAsLong, tan, tanh, toBigDecimal, toBigInteger, toDouble, toFloat, toInteger, toLong, toString, treat, treat, treat, treat, treat, treat, treat, trim, trim, trim, trim, trim, trim, truncate, truncate, tuple, tuple, union, union, union, union, union, union, unionAll, unionAll, unionAll, unionAll, unnestArray, unnestCollection, unwrap, upper, value, values, values, values, windowFunction, wrap, wrap, xmlagg, xmlagg, xmlagg, xmlagg, xmlcomment, xmlconcat, xmlconcat, xmlelement, xmlexists, xmlexists, xmlforest, xmlforest, xmlpi, xmlpi, xmlquery, xmlquery, xmlTable, xmlTable, year
-
Constructor Details
-
CriteriaDefinition
Construct a newCriteriaDefinition
based on the givenCriteriaDefinition
, with the same query return type.- Parameters:
template
- the original query- Since:
- 7.0
-
CriteriaDefinition
Construct a newCriteriaDefinition
based on the givenCriteriaDefinition
. This overload permits changing the query return type. It is expected thatselect(jakarta.persistence.criteria.Selection<? extends R>)
be called to rewrite the selection list.- Parameters:
template
- the original queryresultType
- the new return type- Since:
- 7.0
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
CriteriaDefinition
-
-
Method Details
-
createSelectionQuery
-
createQuery
-
restrict
-
select
- Specified by:
select
in interfaceCriteriaQuery<R>
- Specified by:
select
in interfaceJpaCriteriaQuery<R>
-
multiselect
- Specified by:
multiselect
in interfaceCriteriaQuery<R>
- Specified by:
multiselect
in interfaceJpaCriteriaQuery<R>
-
multiselect
- Specified by:
multiselect
in interfaceCriteriaQuery<R>
- Specified by:
multiselect
in interfaceJpaCriteriaQuery<R>
-
where
- Specified by:
where
in interfaceAbstractQuery<R>
- Specified by:
where
in interfaceCriteriaQuery<R>
- Specified by:
where
in interfaceJpaCriteriaQuery<R>
- Specified by:
where
in interfaceJpaSelectCriteria<R>
-
where
- Specified by:
where
in interfaceAbstractQuery<R>
- Specified by:
where
in interfaceCriteriaQuery<R>
- Specified by:
where
in interfaceJpaCriteriaQuery<R>
- Specified by:
where
in interfaceJpaSelectCriteria<R>
-
groupBy
- Specified by:
groupBy
in interfaceAbstractQuery<R>
- Specified by:
groupBy
in interfaceCriteriaQuery<R>
- Specified by:
groupBy
in interfaceJpaCriteriaQuery<R>
- Specified by:
groupBy
in interfaceJpaSelectCriteria<R>
-
groupBy
- Specified by:
groupBy
in interfaceAbstractQuery<R>
- Specified by:
groupBy
in interfaceCriteriaQuery<R>
- Specified by:
groupBy
in interfaceJpaCriteriaQuery<R>
- Specified by:
groupBy
in interfaceJpaSelectCriteria<R>
-
having
- Specified by:
having
in interfaceAbstractQuery<R>
- Specified by:
having
in interfaceCriteriaQuery<R>
- Specified by:
having
in interfaceJpaCriteriaQuery<R>
- Specified by:
having
in interfaceJpaSelectCriteria<R>
-
having
- Specified by:
having
in interfaceAbstractQuery<R>
- Specified by:
having
in interfaceCriteriaQuery<R>
- Specified by:
having
in interfaceJpaCriteriaQuery<R>
- Specified by:
having
in interfaceJpaSelectCriteria<R>
-
orderBy
- Specified by:
orderBy
in interfaceCriteriaQuery<R>
- Specified by:
orderBy
in interfaceJpaCriteriaQuery<R>
-
orderBy
- Specified by:
orderBy
in interfaceCriteriaQuery<R>
- Specified by:
orderBy
in interfaceJpaCriteriaQuery<R>
-
distinct
- Specified by:
distinct
in interfaceAbstractQuery<R>
- Specified by:
distinct
in interfaceCriteriaQuery<R>
- Specified by:
distinct
in interfaceJpaCriteriaQuery<R>
- Specified by:
distinct
in interfaceJpaSelectCriteria<R>
-
getOrderList
- Specified by:
getOrderList
in interfaceCriteriaQuery<R>
- Specified by:
getOrderList
in interfaceJpaCriteriaQuery<R>
-
getParameters
Description copied from interface:JpaCriteriaQuery
- Specified by:
getParameters
in interfaceCommonAbstractCriteria
- Specified by:
getParameters
in interfaceJpaCriteriaQuery<R>
-
from
- Specified by:
from
in interfaceAbstractQuery<R>
- Specified by:
from
in interfaceJpaCriteriaQuery<R>
- Specified by:
from
in interfaceJpaSelectCriteria<R>
-
from
- Specified by:
from
in interfaceAbstractQuery<R>
- Specified by:
from
in interfaceJpaCriteriaQuery<R>
- Specified by:
from
in interfaceJpaSelectCriteria<R>
-
subquery
- Specified by:
subquery
in interfaceCommonAbstractCriteria
- Specified by:
subquery
in interfaceJpaCriteriaBase
-
getRoots
- Specified by:
getRoots
in interfaceAbstractQuery<R>
-
getSelection
- Specified by:
getSelection
in interfaceAbstractQuery<R>
- Specified by:
getSelection
in interfaceJpaSelectCriteria<R>
-
getGroupList
- Specified by:
getGroupList
in interfaceAbstractQuery<R>
-
getGroupRestriction
- Specified by:
getGroupRestriction
in interfaceAbstractQuery<R>
- Specified by:
getGroupRestriction
in interfaceJpaSelectCriteria<R>
-
isDistinct
public boolean isDistinct()- Specified by:
isDistinct
in interfaceAbstractQuery<R>
-
getResultType
- Specified by:
getResultType
in interfaceAbstractQuery<R>
-
getRestriction
- Specified by:
getRestriction
in interfaceCommonAbstractCriteria
- Specified by:
getRestriction
in interfaceJpaCriteriaBase
- Specified by:
getRestriction
in interfaceJpaSelectCriteria<R>
-
where
- Specified by:
where
in interfaceAbstractQuery<R>
- Specified by:
where
in interfaceCriteriaQuery<R>
- Specified by:
where
in interfaceJpaCriteriaQuery<R>
-
having
- Specified by:
having
in interfaceAbstractQuery<R>
- Specified by:
having
in interfaceCriteriaQuery<R>
- Specified by:
having
in interfaceJpaCriteriaQuery<R>
-
subquery
- Specified by:
subquery
in interfaceCommonAbstractCriteria
- Specified by:
subquery
in interfaceJpaCriteriaQuery<R>
-
getOffset
- Specified by:
getOffset
in interfaceJpaCriteriaQuery<R>
-
offset
- Specified by:
offset
in interfaceJpaCriteriaQuery<R>
-
offset
- Specified by:
offset
in interfaceJpaCriteriaQuery<R>
-
getFetch
- Specified by:
getFetch
in interfaceJpaCriteriaQuery<R>
-
fetch
- Specified by:
fetch
in interfaceJpaCriteriaQuery<R>
-
fetch
public JpaCriteriaQuery<R> fetch(JpaExpression<? extends Number> fetch, FetchClauseType fetchClauseType) - Specified by:
fetch
in interfaceJpaCriteriaQuery<R>
-
fetch
- Specified by:
fetch
in interfaceJpaCriteriaQuery<R>
-
fetch
- Specified by:
fetch
in interfaceJpaCriteriaQuery<R>
-
getFetchClauseType
- Specified by:
getFetchClauseType
in interfaceJpaCriteriaQuery<R>
-
getRootList
Description copied from interface:JpaCriteriaQuery
Return the roots as a list.- Specified by:
getRootList
in interfaceJpaCriteriaQuery<R>
-
getCteCriterias
Description copied from interface:JpaCteContainer
Returns the CTEs that are registered on this container.- Specified by:
getCteCriterias
in interfaceJpaCteContainer
-
getCteCriteria
Description copied from interface:JpaCteContainer
Returns a CTE that is registered by the given name on this container, or any of its parents.- Specified by:
getCteCriteria
in interfaceJpaCteContainer
-
with
Description copied from interface:JpaCteContainer
Registers the givenCriteriaQuery
and returns aJpaCteCriteria
, which can be used for querying.- Specified by:
with
in interfaceJpaCteContainer
- See Also:
-
withRecursiveUnionAll
public <T> JpaCteCriteria<T> withRecursiveUnionAll(AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
Allows to register a recursive CTE. The baseCriteriaQuery
serves for the structure of theJpaCteCriteria
, which is made available in the recursive criteria producer function, so that the recursiveCriteriaQuery
is able to refer to the CTE again.- Specified by:
withRecursiveUnionAll
in interfaceJpaCteContainer
- See Also:
-
withRecursiveUnionDistinct
public <T> JpaCteCriteria<T> withRecursiveUnionDistinct(AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
Allows to register a recursive CTE. The baseCriteriaQuery
serves for the structure of theJpaCteCriteria
, which is made available in the recursive criteria producer function, so that the recursiveCriteriaQuery
is able to refer to the CTE again.- Specified by:
withRecursiveUnionDistinct
in interfaceJpaCteContainer
- See Also:
-
with
Description copied from interface:JpaCteContainer
LikeJpaCteContainer.with(AbstractQuery)
but assigns an explicit CTE name.- Specified by:
with
in interfaceJpaCteContainer
-
withRecursiveUnionAll
public <T> JpaCteCriteria<T> withRecursiveUnionAll(String name, AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
LikeJpaCteContainer.withRecursiveUnionAll(AbstractQuery, Function)
but assigns an explicit CTE name.- Specified by:
withRecursiveUnionAll
in interfaceJpaCteContainer
-
withRecursiveUnionDistinct
public <T> JpaCteCriteria<T> withRecursiveUnionDistinct(String name, AbstractQuery<T> baseCriteria, Function<JpaCteCriteria<T>, AbstractQuery<T>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
LikeJpaCteContainer.withRecursiveUnionDistinct(AbstractQuery, Function)
but assigns an explicit CTE name.- Specified by:
withRecursiveUnionDistinct
in interfaceJpaCteContainer
-
getQuerySpec
Description copied from interface:JpaSelectCriteria
The query structure. SeeJpaQueryStructure
for details- Specified by:
getQuerySpec
in interfaceJpaSelectCriteria<R>
-
getQueryPart
Description copied from interface:JpaSelectCriteria
The query structure. SeeJpaQueryStructure
for details- Specified by:
getQueryPart
in interfaceJpaSelectCriteria<R>
-
from
Description copied from interface:JpaSelectCriteria
Create and add a query root corresponding to the given subquery, forming a cartesian product with any existing roots.- Specified by:
from
in interfaceJpaSelectCriteria<R>
- Parameters:
subquery
- the subquery- Returns:
- query root corresponding to the given subquery
-
from
Description copied from interface:JpaSelectCriteria
Create and add a query root corresponding to the given cte, forming a cartesian product with any existing roots.- Specified by:
from
in interfaceJpaSelectCriteria<R>
- Parameters:
cte
- the cte criteria- Returns:
- query root corresponding to the given cte
-
from
Description copied from interface:JpaSelectCriteria
Create and add a query root corresponding to the given set-returning function, forming a cartesian product with any existing roots.- Specified by:
from
in interfaceJpaSelectCriteria<R>
- Parameters:
function
- the set-returning function- Returns:
- query root corresponding to the given function
-
createCountQuery
Description copied from interface:JpaCriteriaQuery
A query that returns the number of results of this query.- Specified by:
createCountQuery
in interfaceJpaCriteriaQuery<R>
- See Also:
-