/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
/**
* Package for producing SQM trees (see {@link org.hibernate.query.sqm.tree}).
* The main entry point into producing an SQM tree is
* {@link org.hibernate.query.sqm.produce.spi.SemanticQueryProducer}, which
* can be obtained via
* {@link org.hibernate.engine.spi.SessionFactoryImplementor#getSemanticQueryProducer()}
* <p/>
* For HQL/JPQL parsing, pass in the query string and get back the SQM tree as a
* {@link org.hibernate.query.sqm.tree.SqmStatement}.
* <p/>
* For Criteria queries ...
* <p/>
* Generally, the interpretation will throw exceptions as one of 3 types:<ul>
* <li>
* {@link org.hibernate.query.sqm.QueryException} and derivatives represent problems with the
* query itself.
* </li>
* <li>
* {@link org.hibernate.query.sqm.ParsingException} and derivatives represent errors (potential
* bugs) during parsing.
* </li>
* <li>
* {@link org.hibernate.query.sqm.InterpretationException} represents an unexpected problem
* during interpretation; this may indicate a problem with the query or a bug in the parser,
* we just are not sure as it was unexpected.
* </li>
* </ul>
*/
package org.hibernate.query.sqm.produce;