javax.persistence.criteria
Interface Path<X>

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:
Java Persistence 2.0

Method Summary
<K,V,M extends java.util.Map<K,V>>
Expression<M>
get(MapAttribute<X,K,V> map)
          Create a path corresponding to the referenced map-valued attribute.
<E,C extends java.util.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(java.lang.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<java.lang.Class<? extends X>> type()
          Create an expression corresponding to the type of the path.
 
Methods inherited from interface javax.persistence.criteria.Expression
as, in, in, in, in, isNotNull, isNull
 
Methods inherited from interface javax.persistence.criteria.Selection
alias, getCompoundSelectionItems, isCompoundSelection
 
Methods inherited from interface javax.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 java.util.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 java.util.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<java.lang.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(java.lang.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
Returns:
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


Submit a bug or feature

Copyright © 2009-2011, Oracle Corporation and/or its affiliates. All Rights Reserved. Use is subject to license terms.

Generated on 10-February-2011 12:41

Scripting on this page tracks web page traffic, but does not change the content in any way.