Jakarta NoSQL 1.1

The 1.1 release builds upon the stable 1.0 foundation, introducing several key features that expand interoperability, improve developer productivity, and align with the broader Jakarta EE ecosystem.

This release focuses on defining a standard Driver Communication API, which will enable consistent and portable integration with NoSQL databases. It also includes support for Jakarta Query, prepared statement execution, and enhanced attribute mapping.

 

New features, enhancements or additions

  • Update dependencies
  • Update Java version
  • Jakarta Query supports for fluent, portable query definitions (Jakarta Query GitHub)
  • Prepared Statement support for parameterized and secure query execution.
  • Support for Map<K, V> attributes where V is an entity or embedded class.
  • Add support for SequencedCollection and friends
  • Communication API to unify and simplify the integration of NoSQL providers

 

Map support with embedded values

This release introduces support for Map attributes in entity models where the map values are either entity classes or embeddable classes. These types can be defined using regular classes or Java records and must be annotated with @jakarta.nosql.Entity or @jakarta.nosql.Embeddable, respectively.

This enhancement enables modeling more expressive, structured data in which a key is associated with a dynamic or nested value, which is useful in many NoSQL databases that support this behavior, including several document-based databases.


@Entity
public class Developer {

   @Id
   private String id;

   private String name;

   @Column
   private Map<String, Skill> skills;
}

@Embeddable
public class Skill {

   private String name;

   private int experienceInYears;
}

 

Support for Jakarta Query and Prepared Statements

Jakarta NoSQL 1.1 introduces support for Jakarta Query, a fluent, portable query language that enables developers to express queries consistently across both NoSQL and relational systems. In addition, this version supports prepared statements, which safely bind parameters and facilitate the execution of reusable queries. This feature enhances both query performance and security, particularly in dynamic query scenarios.


Query query = database.prepare( "FROM Developer WHERE language = :language");
prepared.bind("language", "Java");
var developers = prepared.result();

 

Communication API to unify and simplify the integration of NoSQL providers

 

 

 

Removals, deprecations or backwards incompatible changes

  • none

     
Release Date
Release Type
Minor release