JPA Interface

Path<X>

Type Parameters:
<X> - the type referenced by the path

Represents a simple or compound attribute path from a bound type or collection, and is a "primitive" expression.
Since:
JPA 2.0
The Paths and Types in JPQL and Criteria API article explains how to use Path.

Public Methods

Expression<M> get(MapAttribute<X,K,V> map)
Create a path corresponding to the referenced map-valued attribute.
Parameters:
map - map-valued attribute
Return:
expression corresponding to the referenced attribute
Since:
JPA 2.0
Expression<C> get(PluralAttribute<X,C,E> collection)
Create a path corresponding to the referenced collection-valued attribute.
Parameters:
collection - collection-valued attribute
Return:
expression corresponding to the referenced attribute
Since:
JPA 2.0
Path<Y> get(SingularAttribute<?superX,Y> attribute)
Create a path corresponding to the referenced single-valued attribute.
Parameters:
attribute - single-valued attribute
Return:
path corresponding to the referenced attribute
Since:
JPA 2.0
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 of Path 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
Return:
path corresponding to the referenced attribute
Throws:
IllegalStateException - if invoked on a path that corresponds to a basic type
IllegalArgumentException - if attribute of the given name does not otherwise exist
Since:
JPA 2.0
Return the bindable object that corresponds to the path expression.
Return:
bindable object corresponding to the path
Since:
JPA 2.0
Path<?> getParentPath()
Return the parent "node" in the path or null if no parent.
Return:
parent
Since:
JPA 2.0
Expression<Class<?extendsX>> type()
Create an expression corresponding to the type of the path.
Return:
expression corresponding to the type of the path
Since:
JPA 2.0