Skip to content

Releases: jakartaee/persistence

Jakarta Persistence 3.2.0

20 Sep 15:37
Compare
Choose a tag to compare

New features, enhancements or additions

  • Adds support for Java record types as embeddable classes
  • Adds support for java.time.Instant and java.time.Year and Clarifies JDBC mappings for basic types
  • Adds union, intersect, except, cast, left, right, and replace for Jakarta Persistence QL and criteria queries
  • Adds || string concatenation operator and id and version functions to Jakarta Persistence QL
  • Adds CriteriaSelect, subquery(EntityType) and joins on EntityType to Criteria API
  • Adds support for specifying null precedence when ordering Jakarta Persistence QL and criteria queries
  • Adds getSingleResultOrNull() to Query, TypedQuery, StoredProcedureQuery
  • Adds entities(), classes() and columns() to NamedNativeQuery
  • Adds lockMode() to EntityResult with the default being OPTIMISTIC
  • Adds getVersion(), isLoaded(), load(), isInstance() and getClass() methods to PersistenceUnitUtil
  • Adds overload of entity() accepting an entity name to Metamodel
  • Adds javax.annotation.processing.Generated to the list of defined annotations on StaticMetamodel
  • Adds constants for managed types, named queries, named graphs and named result set mappings to generated StaticMetamodel
  • Adds LocalDateTime and Instant to supported Version types
  • Adds where(), having(), and(), and or() overloads accepting List to CriteriaQuery and CriteriaBuilder
  • Adds equalTo() and notEqualTo() to Expression
  • Adds concat() overload accepting list of expressions and extract() to CriteriaBuilder
  • Adds Graph interface as parent of EntityGraph and Subgraph and moved common operations there
  • Adds addAttributeNode(), removeAttributeNode(), addTreatedSubgraph(), addElementSubgraph(), addTreatedElementSubgraph(),
    addMapKeySubgraph(), and addTreatedMapKeySubgraph() methods to Graph
  • Adds getReference overload, runWithConnection() and callWithConnection() to EntityManager
  • Adds find(), refresh(), lock() overloads to EntityManager taking newly introduced FindOption, RefreshOption, and LockOption respectively
  • Adds setCacheStoreMode(), and setCacheRetrieveMode() methods to EntityManager and Query
  • Adds runInTransaction() and callInTransaction() to EntityManagerFactory
  • Adds getName() to EntityManagerFactory
  • Adds programmatic API to obtain EntityManagerFactory using PersistenceConfiguration
  • Adds constants for properties defined by the specification to the PersistenceConfiguration
  • Adds SchemaManager API
  • Adds options member to elements which result in DDL generation
  • Adds EnumeratedValue allowing custom mapping of fields of Java enums
  • Adds comment and check members to Table and Column annotations, along with CheckConstraint
  • Adds secondPrecision to Column annotation and clarified semantics of Column members
  • Adds factory-level access to named queries and named entity graphs, along with TypedQueryReference
  • Adds integration points for dependency injection
  • Allows scalar expressions in the ORDER BY clause in Jakarta Persistence QL
  • Allows usage of TableGenerator and SequenceGenerator at the java package level
  • Makes the name member of TableGenerator and SequenceGenerator optional
  • Makes identification variables and the SELECT clause in Jakarta Persistence QL optional
  • Clarifies the primary key types supported for each GenerationType
  • Clarifies availability of SEQUENCE, TABLE and UUID generated IDs on PrePersist
  • Clarifies semantics of numeric literals and numeric type promotions, and adds support for bi and bd suffixes
  • Clarifies semantics of Convert/Converter annotations
  • Clarifies rules around distinction of entity names and identification variables and case-sensitivity in Jakarta Persistence QL queries
  • Clarifies the semantics of Bindable.ENTITY_TYPE in javadoc
  • Clarifies the semantics of collection-valued query parameters
  • Entity and embeddable classes may now be static inner classes
  • Primary key classes are no longer required to be public and serializable
  • Pulls getParameters() up from CriteriaQuery to CommonAbstractCriteria
  • Fixes wildcard types in addSubgraph and addAttributeNode in Graph
  • Fixes lower type bounds to the Path.get entity argument X
  • Fixes example code in the javadoc of AttributeOverrides
  • Partially fixes raw types warnings through the API
  • Improves AsciiDoc formatting and fixes typos through the specification document

Removals, deprecations or backwards incompatible changes

Deprecations

  • Deprecates usage of Calendar, Date, Time, Timestamp, Temporal, MapKeyTemporal and TemporalType
    in new applications in favour of java.time API
  • Deprecates multiselect methods in CriteriaQuery. The preference is to use array or tuple method defined in CriteriaBuilder
  • Deprecates use of Byte[] and Character[] arrays types for basic attributes, in favor of primitive array types

Deprecations for removal

  • Deprecates addSubclassSubgraph() in EntityGraph for removal; addTreatedSubgraph() method should be used as direct replacement
  • Deprecates addSubgraph(Attribute, Class) and addKeySubgraph() in Graph/EntityGraph/SubGraph for removal; addTreatedSubgraph(Attribute, Class)
    and addMapKeySubgraph() methods should be used as direct replacements
  • Deprecates jakarta.persistence.spi.PersistenceUnitTransactionType for removal; jakarta.persistence.PersistenceUnitTransactionType
    methods should be used as direct replacement
  • Deprecates default public no-arg constructor in jakarta.persistence.Persistence and PERSISTENCE_PROVIDER and providers fields
    in this class for removal with no replacement. This class is not designed for extensibility

Full Changelog: 3.1-3.1.0-RELEASE...3.2-3.2.0-RELEASE

Jakarta Persistence 3.2.0-M02

26 Mar 09:34
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Adds secondPrecision to Column annotation and clarified semantics of @column members
  • Adds factory-level access to named queries and named entity graphs
  • Adds integration points for dependency injection
  • Adds EntityTransaction.setTimeout
  • Clarifies semantics of JPQL numeric type promotions
  • Clarifies the semantics of collection-valued query parameters
  • Deprecates use of Byte[] and Character[] arrays types for basic attributes, in favor of primitive array types

New Contributors

Full Changelog: 3.2-M1-3.2.0-M1-RELEASE...3.2.0-DRAFT02-3.2.0-M2-RELEASE

Jakarta Persistence 3.2.0-M01

29 Feb 07:16
Compare
Choose a tag to compare
Pre-release

This release contains following changes:

  • Adds factory-level access to named queries and named entity graphs
  • Updates orm schema for 3.2

Full Changelog: 3.2-DRAFT01-3.2.0-B02-RELEASE...3.2-M1-3.2.0-M1-RELEASE

Jakarta Persistence 3.2.0-B02

08 Nov 09:53
Compare
Choose a tag to compare
Pre-release

This release reflects feedback from vendors and contains following changes:

  • Adds CriteriaSelect to the Criteria API
  • Adds getName() to EntityManagerFactory
  • Allows usage of TableGenerator and SequenceGenerator at the java package level
  • Clarifies semantics of Convert/Converter annotations
  • Deprecates multiselect methods in CriteriaQuery. The preference is to use array or tuple method defined in CriteriaBuilder
  • Deprecates default public no-arg constructor in jakarta.persistence.Persistence and PERSISTENCE_PROVIDER and providers fields in this class for removal with no replacement. This class is not designed for extensibility
  • Fixes constructor methods of Timeout
  • Fixes generic type in EntityManager.createNativeQuery()
  • Improves Graph operations for handling AttributeNodes

Full Changelog: 3.2-DRAFT01-3.2.0-B01-RELEASE...3.2-DRAFT01-3.2.0-B02-RELEASE

Jakarta Persistence 3.2.0-B01

08 Nov 09:29
Compare
Choose a tag to compare
Pre-release

This release contains following changes:

  • Adds support for Java record types as embeddable classes
  • Adds support for java.time.Instant and java.time.Year and Clarifies JDBC mappings for basic types
  • Adds union, intersect, except, cast, left, right, and replace for Jakarta Persistence QL and criteria queries
  • Adds || string concatenation operator to Jakarta Persistence QL
  • Adds subquery(EntityType) and joins on EntityType Criteria API
  • Adds support for specifying null precedence when ordering Jakarta Persistence QL and criteria queries
  • Adds getSingleResultOrNull() to Query, TypedQuery, StoredProcedureQuery
  • Adds entities(), classes() and columns() to NamedNativeQuery
  • Adds lockMode() to EntityResult with the default being OPTIMISTIC
  • Adds getVersion(), isLoaded(), load(), isInstance() and getClass() methods to PersistenceUnitUtil
  • Adds overload of entity() accepting an entity name to Metamodel
  • Adds javax.annotation.processing.Generated to the list of defined annotations on StaticMetamodel
  • Adds constants for managed types, named queries, named graphs and named result set mappings to generated StaticMetamodel
  • Adds LocalDateTime and Instant to supported Version types
  • Adds where(), having(), and(), and or() overloads accepting List to CriteriaQuery and CriteriaBuilder
  • Adds equalTo() and notEqualTo() to Expression
  • Adds concat() overload accepting list of expressions and extract() to CriteriaBuilder
  • Adds Graph interface as parent of EntityGraph and Subgraph and moved common operations there
  • Adds addAttributeNode(), removeAttributeNode(), addTreatedSubgraph(), addElementSubgraph(), addTreatedElementSubgraph(),
    addMapKeySubgraph(), and addTreatedMapKeySubgraph() methods to Graph
  • Adds getReference overload, runWithConnection() and callWithConnection() to EntityManager
  • Adds find(), refresh(), lock() overloads to EntityManager taking newly introduced FindOption, RefreshOption,
    and LockOption respectively
  • Adds setCacheStoreMode(), and setCacheRetrieveMode() methods to EntityManager and Query
  • Adds runInTransaction() and callInTransaction() to EntityManagerFactory
  • Adds programmatic API to obtain EntityManagerFactory using PersistenceConfiguration
  • Adds constants for properties defined by the specification to the PersistenceConfiguration
  • Adds SchemaManager API
  • Adds options member to elements which result in DDL generation
  • Adds EnumeratedValue allowing custom mapping of fields of Java enums
  • Adds comment and check members to table and column annotations, along with CheckConstraint
  • Made the name member of TableGenerator and SequenceGenerator optional
  • Clarifies the primary key types supported for each GenerationType
  • Clarifies availability of SEQUENCE, TABLE and UUID generated IDs on PrePersist
  • Clarifies semantics of numeric literals and Adds support for bi and bd suffixes
  • Clarifies rules around distinction of entity names and identification variables and case-sensitivity in Jakarta Persistence QL queries
  • Clarifies the semantics of Bindable.ENTITY_TYPE in javadoc
  • Entity and embeddable classes may now be static inner classes
  • Primary key classes are no longer required to be public and serializable
  • Pulls getParameters() up from CriteriaQuery to CommonAbstractCriteria
  • Fixes wildcard types in addSubgraph and addAttributeNode in Graph
  • Fixes lower type bounds to the Path.get entity argument X
  • Fixes example code in the javadoc of AttributeOverrides
  • Partially fixes raw types warnings through the API
  • Improves AsciiDoc formatting and fixes typos through the specification document

New Contributors

Full Changelog: 3.1-3.1.0-RELEASE...3.2-DRAFT01-3.2.0-B01-RELEASE

Jakarta Persistence 3.1.0 API

03 May 20:49
Compare
Choose a tag to compare

This release contains following changes:

  • EntityManagerFactory and EntityManager interfaces extends java.lang.AutoCloseable interface
  • Fixes ClassTransformer.transform to throw Persistence API specific exception
  • Adds support for java.util.UUID and GenerationType.UUID
  • Adds CEILING, EXP, FLOOR, LN, POWER, ROUND, and SIGN numeric functions to Jakarta Persistence QL and ceiling(), exp(), floor(), ln(), power(), round(), and sign() to Criteria API
  • Adds LOCAL DATE, LOCAL DATETIME, and LOCAL TIME functions to Jakarta Persistence QL and corresponding localDate(), localDateTime(), and localTime() to Criteria API
  • Adds EXTRACT function to Jakarta Persistence QL
  • Adds support for Expressions as conditions in Criteria CASE expressions
  • Adds missing definition of single_valued_embeddable_object_field in Jakarta Persistence QL BNF
  • Clarifies mixing types of query input parameters
  • Clarifies definition of the Basic type
  • Clarifies the order of parameters in the LOCATE function
  • Clarifies SqlResultSetMapping with multiple EntityResults and conflicting aliases

New Contributors

Project Board: https://github.com/eclipse-ee4j/jpa-api/projects/2
Full Changelog: https://github.com/eclipse-ee4j/jpa-api/commits/3.1-3.1.0-RELEASE

Jakarta Persistence 3.0.0 API

26 Oct 18:29
Compare
Choose a tag to compare

The 3.0.0 release is the first release under the jakarta.persistence.* namespace.