-
- Type Parameters:
X
- the type referenced by the path
- All Superinterfaces:
Expression<X>
,Selection<X>
,TupleElement<X>
- All Known Subinterfaces:
CollectionJoin<Z,E>
,From<Z,X>
,Join<Z,X>
,ListJoin<Z,E>
,MapJoin<Z,K,V>
,PluralJoin<Z,C,E>
,Root<X>
,SetJoin<Z,E>
public interface Path<X> extends Expression<X>
Represents a simple or compound attribute path from a bound type or collection, and is a "primitive" expression.- Since:
- 2.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <K,V,M extends Map<K,V>>
Expression<M>get(MapAttribute<X,K,V> map)
Create a path corresponding to the referenced map-valued attribute.<E,C extends Collection<E>>
Expression<C>get(PluralAttribute<X,C,E> collection)
Create a path corresponding to the referenced collection-valued attribute.<Y> Path<Y>
get(SingularAttribute<? super X,Y> attribute)
Create a path corresponding to the referenced single-valued attribute.<Y> Path<Y>
get(String attributeName)
Create a path corresponding to the referenced attribute.Bindable<X>
getModel()
Return the bindable object that corresponds to the path expression.Path<?>
getParentPath()
Return the parent "node" in the path or null if no parent.Expression<Class<? extends X>>
type()
Create an expression corresponding to the type of the path.-
Methods inherited from interface jakarta.persistence.criteria.Expression
as, in, in, in, in, isNotNull, isNull
-
Methods inherited from interface jakarta.persistence.criteria.Selection
alias, getCompoundSelectionItems, isCompoundSelection
-
Methods inherited from interface jakarta.persistence.TupleElement
getAlias, getJavaType
-
-
-
-
Method Detail
-
getModel
Bindable<X> getModel()
Return the bindable object that corresponds to the path expression.- Returns:
- bindable object corresponding to the path
-
getParentPath
Path<?> getParentPath()
Return the parent "node" in the path or null if no parent.- Returns:
- parent
-
get
<Y> Path<Y> get(SingularAttribute<? super X,Y> attribute)
Create a path corresponding to the referenced single-valued attribute.- Parameters:
attribute
- single-valued attribute- Returns:
- path corresponding to the referenced attribute
-
get
<E,C extends Collection<E>> Expression<C> get(PluralAttribute<X,C,E> collection)
Create a path corresponding to the referenced collection-valued attribute.- Parameters:
collection
- collection-valued attribute- Returns:
- expression corresponding to the referenced attribute
-
get
<K,V,M extends Map<K,V>> Expression<M> get(MapAttribute<X,K,V> map)
Create a path corresponding to the referenced map-valued attribute.- Parameters:
map
- map-valued attribute- Returns:
- expression corresponding to the referenced attribute
-
type
Expression<Class<? extends X>> type()
Create an expression corresponding to the type of the path.- Returns:
- expression corresponding to the type of the path
-
get
<Y> Path<Y> get(String attributeName)
Create a path corresponding to the referenced attribute.Note: Applications using the string-based API may need to specify the type resulting from the
get
operation in order to avoid the use ofPath
variables.For example: CriteriaQuery<Person> q = cb.createQuery(Person.class); Root<Person> p = q.from(Person.class); q.select(p) .where(cb.isMember("joe", p.<Set<String>>get("nicknames"))); rather than: CriteriaQuery<Person> q = cb.createQuery(Person.class); Root<Person> p = q.from(Person.class); Path<Set<String>> nicknames = p.get("nicknames"); q.select(p) .where(cb.isMember("joe", nicknames));
- Parameters:
attributeName
- name of the attribute- Returns:
- path corresponding to the referenced attribute
- Throws:
IllegalStateException
- if invoked on a path that corresponds to a basic typeIllegalArgumentException
- if attribute of the given name does not otherwise exist
-
-