HOME

TheInfoList



OR:

The Jakarta Persistence Query Language (JPQL; formerly Java Persistence Query Language) is a platform-independent
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
query language Query languages, data query languages or database query languages (DQL) are computer languages used to make queries in databases and information systems. A well known example is the Structured Query Language (SQL). Types Broadly, query language ...
defined as part of the
Jakarta Persistence Jakarta Persistence (JPA; formerly Java Persistence API) is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications. Persistence in this context covers three ...
(JPA; formerly Java Persistence API) specification. JPQL is used to make queries against entities stored in a relational database. It is heavily inspired by SQL, and its queries resemble SQL queries in syntax, but operate against JPA entity objects rather than directly with database tables. In addition to retrieving objects (SELECT queries), JPQL supports set based UPDATE and DELETE queries.


Examples

Example JPA Classes, getters and setters omitted for simplicity. @Entity public class Author @Entity public class Book @Entity public class Publisher Then a simple query to retrieve the list of all authors, ordered alphabetically, would be: SELECT a FROM Author a ORDER BY a.firstName, a.lastName To retrieve the list of authors that have ever been published by XYZ Press: SELECT DISTINCT a FROM Author a INNER JOIN a.books b WHERE b.publisher.name = 'XYZ Press' JPQL supports named parameters, which begin with the colon (:). We could write a function returning a list of authors with the given last name as follows: import javax.persistence.EntityManager; import javax.persistence.TypedQuery; ... public List getAuthorsByLastName(String lastName)


Hibernate Query Language

JPQL is based on the
Hibernate Query Language Hibernate ORM (or simply Hibernate) is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational imp ...
(HQL), an earlier non-standard query language included in the Hibernate object-relational mapping library. Hibernate and the HQL were created before the JPA specification. As of Hibernate 3 JPQL is a subset of HQL.


See also

* Object-relational mapping *
Hibernate (framework) Hibernate ORM (or simply Hibernate) is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational imp ...
*
Jakarta Persistence Jakarta Persistence (JPA; formerly Java Persistence API) is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications. Persistence in this context covers three ...


External links

* *
Full Query Language Syntax from The Jakarta EE 8 Tutorial

JPA Queries and JPQL - a chapter of the ObjectDB Manual

Type safe Hibernate (HQL) query engine - TorpedoQuery
{{Jakarta Persistence Query languages Data modeling languages Java enterprise platform