Releases: jakartaee/persistence
Jakarta Persistence 3.2.0
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
, andreplace
for Jakarta Persistence QL and criteria queries - Adds
||
string concatenation operator andid
andversion
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
andbd
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[]
andCharacter[]
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
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
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
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
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
, andreplace
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
andbd
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
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
- @scottmarlow
- @m0mus
- @pzygielo
- @hebo6
- @moghaddam
- @manouti
- @jbescos
- @gavinking
- @dazey3
- @DmitriGit
- @sebersole
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
The 3.0.0 release is the first release under the jakarta.persistence.*
namespace.