New experimental parser for JP-QL queries
Java GAP Groovy ANTLR

Hibernate Query Parser

Experimental new parser for HQL and JP-QL queries, to convert these into SQL and other different targets such as Lucene queries, Map/Reduce queries for NoSQL stores, make it possible to perform more sophisticated SQL transformations.


There is much to do and many tests to be ported from the existing parser or added from scratch; anyone is welcome to help by sending pull requests, commenting the code on github directly or by by using the mailing list or IRC chat channels:

Bug Reports:


This project used Gradle as build tool. To build the complete project, run the following command from the directory containing this README file:

./gradlew clean build

You don't need to have Gradle installed; When executed for the first time, gradlew (the "Gradle wrapper") will download Gradle in the required version.

In order to install the JARs created by this project into your local Maven repository, run the following command:

./gradlew clean install

To deploy the modules to the JBoss Maven repository, run:

./gradlew clean publish

Depending on the version of the project (as given via ext.projectVersion) this will perform a deployment either into the JBoss snapshot repository or the JBoss release staging repository (both requires your Nexus credentials to be configured in ~/.m2/settings.xml).


Perform the following steps to do a release of this project:

  • delete any stale files and directories from your working copy: git clean -d -x -f
  • verify that everything builds as expected: ./gradlew clean build
  • set project version in build.gradle (property ext.projectVersion) to the release version, e.g. "1.0.0.Alpha3" and commit
  • tag the release in Git: git tag -a 1.0.0.Alpha3 -m 'my version 1.0.0.Alpha3'
  • perform the release: ./gradlew clean publish
  • examine the staged release on the JBoss Nexus server; either close and release or drop the staging repository
  • set project version in build.gradle to the next development version, e.g. "1.0.0-SNAPSHOT" and commit
  • push the master branches and the new tag to the upstream repo
  • release the version in JIRA and transition all involved issues to "Closed"

Source and credits

The grammar and parser code is based on the antlr3 branch previously developed for Hibernate 3; the original code by Steve Ebersole and Alexandre Porcelli can be found on the archived Hibernate subversion repository.


This software and its documentation are distributed under the terms of the FSF Lesser GNU Public License (see license.txt).