Querydsl is a framework which enables the construction of type-safe SQL-like queries. Instead of writing queries as inline strings or externalizing them into XML files they aren be constructed via a fluent API like Querydsl.
The benefits of using a fluent API in comparison to simple strings are:
* code completion in IDE (all properties, methods and operations can be expanded in your favorite Java IDE)
* almost no syntactically invalid queries allowed (type-safe on all levels)
* domain types and properties can be referenced safely (no Strings involved!)
* adopts better to refactoring changes in domain types
* incremental Query definition is easier
Supported backends
JPA / Hibernate
* Getting started with Querydsl using Hibernate
* via the querydsl-hql module
* tested with Hibernate using Derby, HSQLDB and MySQL
JDO
* Getting started with Querydsl using JDO
* via the querydsl-jdoql module
* tested with DataNucleus Access Platform
Java Collections
* Getting started using Querydsl for Collections
* via the querydsl-collections module
SQL
* Getting started using Querydsl for SQL
* via the querydsl-sql module
* supports Derby, HSQLDB, MySQL (5.1), Postgres (8.4), Oracle (10/11) and MS SQL Server (2008)
RDF
* via RDFBean, our Object/RDF persistence framework
* tested with RDFBean using Sesame
Lucene
* Getting started using Querydsl for Lucene
* via the querydsl-lucene module
Hibernate Search
* Getting started using Querydsl for Hibernate Search
* via the querydsl-hibernate-search module