KyoMel / Yogyakarta, Indonesia

Term 065065 / 344

Jakarta Query

Month
September 2025
Day
12
Source
2025/sept-term.md

Definition:

Jakarta Query (formerly JPA Criteria API) is a Java specification that allows developers to build database queries programmatically using Java code instead of writing SQL strings. It provides a type-safe, object-oriented way to construct dynamic queries at runtime.

Key Features

  • Type-safe: Compile-time checking prevents SQL errors
  • Dynamic: Build queries conditionally based on user input
  • Database-agnostic: Works across different database systems
  • IDE-friendly: Auto-completion and refactoring support

Example:

Traditional SQL String:

String sql = "SELECT p FROM Person p WHERE p.age > 25 AND p.city = 'New York'";

Jakarta Query (Criteria API):

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Person> query = cb.createQuery(Person.class);
Root<Person> person = query.from(Person.class);

query.select(person)
     .where(cb.and(
         cb.greaterThan(person.get("age"), 25),
         cb.equal(person.get("city"), "New York")
     ));

List<Person> results = entityManager.createQuery(query).getResultList();

Keep reading