Interface Path<X>

    • 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 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