Как обновить Hibernate с версии 4.3 до 5.2 для перехода на JDK 10? - PullRequest
0 голосов
/ 07 мая 2018

Поскольку JDK8 Oracle объявил, что больше не поддерживает, я должен обновить текущую JDK до JDK10.

После изучения текущее значение hibernate также необходимо обновить с hibernate 4 до hibernate 5, чтобы оно могло работать на JDK 10.

.

Тем не менее, существуют некоторые библиотеки, связанные с гибернацией, следует ли мне обновить, если да, то какая версия подходит? Вот выдержка из моего текущего pom.xml:

<properties>
<hibernate.version>4.3.11.Final</hibernate.version>
<java-version>1.7</java-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<!-- hibernate -->
<dependency>
     <groupId>org.hibernate.javax.persistence</groupId>  
     <artifactId>hibernate-jpa-2.1-api</artifactId>
     <version>1.0.0.Final</version>
</dependency>

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-entitymanager</artifactId>
     <version>${hibernate.version}</version>
</dependency>

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>5.1.2.Final</version>
</dependency>

1 Ответ

0 голосов
/ 07 июня 2018

Говоря просто о зависимостях, обновление с Hibernate 4.3.x до > = 5.2.x довольно простое. Последняя версия> = 5.2.x довольно солидна и уже давно протестирована сообществом. Более свежие версии> = 5.3.x были выпущены в мае 2018 года.

Вы можете выполнить миграцию в pom.xml с помощью следующих фрагментов:

Hibernate 5.2.x

<properties>
    <hibernate.version>5.2.17.Final</hibernate.version>
    <hibernate.validator.version>6.0.10.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>

Hibernate 5.3.x

Просто замените одно значение свойства следующим образом:

<hibernate.version>5.3.1.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 файл в проекте, чтобы

  1. Вы установили: <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
  2. и определите заголовок как соответствующий 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">
    

Дополнительные замечания

Теоретически все важные зависимости должны быть включены в ваш проект с помощью приведенных выше фрагментов. Однако на практике вы (скорее всего) столкнетесь с некоторыми критическими изменениями при компиляции или времени выполнения с вашим существующим кодом проекта. Многие из них могут быть решены путем проверки официальных руководств по миграции здесь:

Надеюсь, это поможет.

...