Говоря только о зависимостях, переход с Hibernate 4.3.x на ›= 5.2.x довольно прост. Последняя версия ›= 5.2.x довольно надежна и была протестирована сообществом на предмет уже довольно давно. Более свежие версии ›= 5.3.x были выпущены в ноябре 2020 г.
Вы можете выполнить миграцию в своем pom.xml
с помощью следующих фрагментов:
Гибернация 5.2.x
<properties>
<hibernate.version>5.2.18.Final</hibernate.version>
<hibernate.validator.version>6.0.21.Final</hibernate.validator.version>
<java-version>10</java-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.validator.version}</version>
</dependency>
Гибернация 5.3.x
Просто замените одно значение свойства на следующее:
<hibernate.version>5.3.20.Final</hibernate.version>
Все другие соответствующие транзитивные зависимости подключаются через указанные выше артефакты автоматически.
Обратите внимание
hibernate-entitymanager-...jar
, который использовался в исходном фрагменте pom.xml
, больше не существует в Hibernate 5.2.x. Все, что связано с JPA/EntityManager, теперь включено в hibernate-core-...jar
.
Спящий валидатор
Начиная с версии 6.0.10 библиотека полностью поддерживает JDK10:
Теперь вы можете создавать и использовать Hibernate Validator с JDK 10.
Для справки см.: http://in.relation.to/2018/05/15/hibernate-validator-6010-final-out/
Чеки...
Кроме того, просмотрите каждый persistence.xml
файл в проекте, чтобы
вы установили: <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
и определите заголовок, соответствующий JPA 2.1:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
или 3. быть совместимым с JPA 2.2 как
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">
Дополнительные замечания
Теоретически все важные зависимости должны быть втянуты в ваш проект с помощью приведенных выше фрагментов. Однако на практике вы (скорее всего) столкнетесь с некоторыми критическими изменениями при компиляции или во время выполнения с вашим существующим кодом проекта. Многие из них можно решить, проверив официальные руководства по миграции здесь:
Надеюсь, поможет.
07.06.2018