JPA Interface

Path

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

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<?superX,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<?superX,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
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