68 lines
2.2 KiB
Plaintext
68 lines
2.2 KiB
Plaintext
= 6.0 Migration Guide
|
|
:toc:
|
|
|
|
This guide discusses migration from Hibernate ORM version 6.0. For migration from
|
|
earlier versions, see any other pertinent migration guides as well.
|
|
|
|
== Background
|
|
|
|
|
|
== Known changes
|
|
|
|
=== Jakarta Persistence
|
|
|
|
6.0 moves from Java Persistence as defined by the Java EE specs to
|
|
Jakarta Persistence as defined by the Jakarta EE spec. The most immediate
|
|
impact of this change is that applications would need to be updated to use
|
|
the Jakarata Persistence classes (`jakarta.persistence.*`) instead of the Java
|
|
Persistence ones (`javax.persistence.*`).
|
|
|
|
The Jakarta spec also renames the JPA settings (again, from `javax.persistence.*` to
|
|
'jakarta.persistence.*') and defines a new set of XSD namespaces for `orm.xml` and
|
|
`persistence.xml` files.
|
|
|
|
Jakarta provides a https://github.com/eclipse/transformer[transformer]
|
|
tool which, along with appropriate "rules", will transform a project from Java Persistence to
|
|
Jakarta Persistence. This can update package names in source, settings, xsd references and more.
|
|
|
|
// todo (6.0) : reference to `${root}/rules ?
|
|
|
|
NOTE: As far as the XSD and setting changes, Hibernate does support both sets as a temporary aid
|
|
in migration. It logs a deprecation warning when the Java EE variants are used.
|
|
|
|
|
|
=== Reading from JDBC
|
|
|
|
Read-by-position rather than read-by-name
|
|
|
|
|
|
=== Type system / custom types
|
|
|
|
==== Influencing JdbcTypeDescriptor to use
|
|
|
|
Discuss `JdbcTypeCode`, `JdbcType`, `JdbcTypeRegistration`
|
|
|
|
==== Influencing JavaTypeDescriptor to use
|
|
|
|
Discuss `@JavaType`, `@JavaTypeRegistration`
|
|
|
|
|
|
==== Component Mapping
|
|
|
|
Multiple component mappings for the same java class with different property mappings is not supported anymore. Every property mapping combination should have its own java class"
|
|
|
|
=== Procedure Parameters, enable passing nulls
|
|
|
|
Passing null or not is now triggered by whether setting the parameter was called at all. In other ords a distinction is made between calling `setParameter` passing null versus not calling `setParameter` at all. In the first case, we pass along the null value; in the second we do not.
|
|
|
|
=== SQM
|
|
|
|
* Functions
|
|
* Multi-table bulk manipulation HQL/Criteria query handling
|
|
|
|
|
|
=== Removal
|
|
|
|
* JMX integration
|
|
* JACC integration
|