web-dev-qa-db-ja.com

Spring Boot1.3.0はHibernate5をサポートしていますか?

SpringBoot(1.3.0)によるHibernate5のサポートについて少し混乱しています。このリファレンスには、hibernate 4.3.11.Finalへの依存関係が記載されていますが、Hibernate5サポートを含むSpringFramework4.2.3への依存関係も記載されています。

追加のHibernate5依存関係を追加して、どのブートバンドルをオーバーライドするかだけですか?誰かが私のために明確にしてくれますか?

15
John Cartwright

Spring Boot1.3ではHibernate4.3またはHibernate5.0のいずれかを使用できます。ご覧のとおり、Hibernate4.3.xがデフォルトバージョンです。

Hibernate 5.0を使用するには、SpringBootの依存関係管理でhibernate.versionプロパティをオーバーライドする必要があります。 Mavenを使用していると仮定すると:

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

Hibernate 5.0を使用する場合、Hibernate 4.3.xを使用する場合との大きな違いの1つは、SpringBootのカスタム命名戦略が失われることです。 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のデフォルトが気に入らない場合は、それぞれapplication.propertiesプロパティとspring.jpa.properties.hibernate.implicit_naming_strategyプロパティを使用して、SpringBootのspring.jpa.properties.hibernate.physical_naming_strategyでカスタムの暗黙的または物理的な命名戦略を指定できます。

16
Andy Wilkinson

2016年7月の更新:Spring Boot 1.4.0のリリースでは、デフォルト Hibernate 5がデフォルトのJPA永続性プロバイダーとして使用されます


Hibernate 5への移行に関するチケット しばらくの間あります-主な後退は、名前戦略の非互換性であるようです。現在、チケットは1.4.0に予定されています

6
dimitrisli