Skip to main content

Jakarta Query 1.0 (under development)

First release of Jakarta Query

Jakarta Query serves as a unifying specification that provides a common object-oriented query language for the Jakarta ecosystem. It establishes a shared foundation that can be used consistently across Jakarta Persistence, Jakarta Data, and Jakarta NoSQL, ensuring that developers rely on a single query model rather than separate, independently evolving languages.

To accommodate the diversity of datastores in the Jakarta ecosystem, Jakarta Query distinguishes between two levels of the language: a core subset, designed for use by Jakarta Data and Jakarta NoSQL providers targeting non-relational databases, and an extended form, tailored for Jakarta Persistence and other providers working with relational technologies.

  • a core language that can be implemented by Jakarta Data and Jakarta NoSQL providers using non-relational datastores, and
  • an extended language tailored for Jakarta Persistence providers or other persistence technologies backed by relational databases.

⚠️ Note
While Jakarta Data primarily targets the Core language, it may also support
the Extended language if its implementation is based on Jakarta Persistence.

The language is closely based on the existing query languages defined by Jakarta Persistence and Jakarta Data, and is backward compatible with both.

New features, enhancements or additions

  • Extract the definition of JPQL from the Jakarta Persistence specification to a new document
  • Work toward a much more rigorous definition of the semantics of the query language, clarifying ambiguities
  • Redefine JDQL as a subset of the full query language
  • Consider enhancements to the query language arising out of work on Jakarta Persistence 4 and Jakarta Data 1.1.

Enhancements might include:

  • streamlined syntax for select new,
  • cleaner syntax for literal dates and times, and/or
  • subqueries in select, from, and join.

Removals, deprecations or backwards incompatible changes

N/A

Minimum Java SE Version

Java SE 21 or higher

Details

Ballots

Creation/Plan Review

The Specification Committee Ballot concluded successfully on 2025-04-01 with the following results.

Representative Representative for: Vote
Kenji Kazumura Fujitsu +1
Emily Jiang, Tom Watson IBM +1
Ed Bratt, Dmitry Kornilov Oracle +1
Andrew Pielage, Petr Aubrecht Payara +1
David Blevins, Jean-Louis Monteiro Tomitribe +1
Ivar Grimstad EE4J PMC +1
Marcelo Ancelmo, Abraham Marin-Perez Participant Members no vote
Werner Keil Committer Members +1
Jun Qian Enterprise Members +1
Zhai Luchao Enterprise Members +1
Total 9

Non-binding Votes

Representative Representative for: Vote
Angelo Rubini Community +1
Total 1

The ballot was run on the jakarta.ee-spec mailing list

Back to the top