| AbstractQuery | The AbstractQueryinterface defines functionality that is common
 to both top-level queries and subqueries. | 
| CollectionJoin | The CollectionJoininterface is the type of the result of
 joining to a collection over an association or element 
 collection that has been specified as ajava.util.Collection. | 
| CommonAbstractCriteria | The CommonAbstractCriteriainterface defines functionality 
 that is common to both top-level criteria queries and subqueries as 
 well as to update and delete criteria operations. | 
| CompoundSelection | The CompoundSelectioninterface defines a compound selection item
 (tuple, array, or result of constructor). | 
| CriteriaBuilder.Case | Interface used to build general case expressions. | 
| CriteriaBuilder.Coalesce | Interface used to build coalesce expressions. | 
| CriteriaBuilder.In | Interface used to build in predicates. | 
| CriteriaBuilder.SimpleCase | Interface used to build simple case expressions. | 
| CriteriaBuilder.Trimspec | Used to specify how strings are trimmed. | 
| CriteriaDelete | The CriteriaDeleteinterface defines functionality for performing
 bulk delete operations using the Criteria API | 
| CriteriaQuery | The CriteriaQueryinterface defines functionality that is specific 
 to top-level queries. | 
| CriteriaUpdate | The CriteriaUpdateinterface defines functionality for performing
 bulk update operations using the Criteria API. | 
| Expression | Type for query expressions. | 
| Fetch | Represents a join-fetched association or attribute. | 
| FetchParent | Represents an element of the from clause which may
 function as the parent of Fetches. | 
| From | Represents a bound type, usually an entity that appears in
 the from clause, but may also be an embeddable belonging to
 an entity in the from clause. | 
| Join | A join to an entity, embeddable, or basic type. | 
| JoinType | Defines the three types of joins. | 
| ListJoin | The ListJoininterface is the type of the result of
 joining to a collection over an association or element 
 collection that has been specified as ajava.util.List. | 
| MapJoin | The MapJoininterface is the type of the result of
 joining to a collection over an association or element 
 collection that has been specified as ajava.util.Map. | 
| Order | An object that defines an ordering over the query results. | 
| ParameterExpression | Type of criteria query parameter expressions. | 
| Path | Represents a simple or compound attribute path from a 
 bound type or collection, and is a "primitive" expression. | 
| PluralJoin | The PluralJoininterface defines functionality
 that is common to joins to all collection types. | 
| Predicate | The type of a simple or compound predicate: a conjunction or
 disjunction of restrictions. | 
| Predicate.BooleanOperator |  | 
| Root | A root type in the from clause. | 
| Selection | The Selectioninterface defines an item that is to be
 returned in a query result. | 
| SetJoin | The SetJoininterface is the type of the result of
 joining to a collection over an association or element 
 collection that has been specified as ajava.util.Set. | 
| Subquery | The Subqueryinterface defines functionality that is 
 specific to subqueries. |