SpringBoot 1.3.0 поддерживает спящий режим 5?

Я немного запутался в поддержке SpringBoot (1.3.0) Hibernate5. Ссылка ссылается на спящий режим 4.3.11.Final, но также указывает зависимость от SpringFramework 4.2.3, которая включает поддержку Hibernate5.

Это просто вопрос добавления дополнительных зависимостей Hibernate5 для переопределения пакетов Boot? Может ли кто-то прояснить меня?

Ответы

Ответ 1

Вы можете использовать либо Hibernate 4.3, либо Hibernate 5.0 с Spring Boot 1.3. Как вы заметили, Hibernate 4.3.x является стандартной версией.

Чтобы использовать Hibernate 5.0, вы должны переопределить свойство hibernate.version в Spring управлении зависимостями загрузки. Предполагая, что вы используете Maven:

<properties>
    <hibernate.version>5.0.5.Final</hibernate.version>
</properties>

При использовании Hibernate 5.0 большое отличие от использования Hibernate 4.3.x заключается в том, что вы потеряете стратегию именования загрузки Spring. Из-за изменения, произошедшего в Hibernate 5.0, вы увидите предупреждение, подобное этому при запуске:

2015-12-07 10:04:56.911  WARN 81371 --- [           main] org.hibernate.orm.deprecation            : HHH90000006: Attempted to specify unsupported NamingStrategy via setting [hibernate.ejb.naming_strategy]; NamingStrategy has been removed in favor of the split ImplicitNamingStrategy and PhysicalNamingStrategy; use [hibernate.implicit_naming_strategy] or [hibernate.physical_naming_strategy], respectively, instead.

Если вам не нравятся настройки Hibernate 5 по умолчанию, вы можете указать пользовательскую неявную или физическую стратегию именования в Spring Boot application.properties с помощью свойств spring.jpa.properties.hibernate.implicit_naming_strategy и spring.jpa.properties.hibernate.physical_naming_strategy соответственно.

Ответ 2

Обновление июля 2016 года: с выпуском Spring Boot 1.4.0 по умолчанию Hibernate 5 используется в качестве поставщика сохранения по умолчанию JPA.


В течение некоторого времени есть билет о переходе на Hibernate 5 - кажется, что основным препятствием является некоторая несовместимость стратегии имени. Asof теперь, билет в настоящее время запланирован на 1.4.0

Ответ 3

Спасибо, ребята! после многих испытаний это решение работало для меня как шарм! Я внедрил пользовательскую стратегию и установил их в application.yml, как показано ниже:

   jpa:
    database: MYSQL
    database-platform: org.hibernate.dialect.MySQL5Dialect
    properties:
        hibernate:
            implicit_naming_strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl
            physical_naming_strategy: com.quicken.ups.entities.utils.DBFieldNamingStrategy