2015-12-06 21 views
15

私は、Hibernate5のSpringBoot(1.3.0)サポートについて少し混乱しています。このリファレンスは、Hibernate 4.3.11.Finalへの依存関係をリストアップしていますが、Hibernate5のサポートを含むSpringFramework 4.2.3への依存関係もリストしています。SpringBoot 1.3.0サポート休止5?

追加のHibernate5依存関係を追加するだけで、どのBootバンドルを上書きすることができますか?誰かが私のために明確にしてくれますか?

答えて

16

Springブート1.3でHibernate 4.3またはHibernate 5.0を使用できます。ご覧のとおり、Hibernate 4.3.xはデフォルトのバージョンです。

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

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

を休止5.0を使用する場合は、Hibernateの4.3.xを使用してから、一つの大きな違いは、あなたが春ブーツのカスタム命名戦略を失うということです。あなたはHibernateの5のデフォルトを嫌う場合は、あなたが春ブーツのapplication.propertiesでカスタムの暗黙的または物理的なネーミング戦略を指定することができます

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.0で行われた破壊変更するには、このような警告が起動時にログインして表示されますspring.jpa.properties.hibernate.implicit_naming_strategyおよびspring.jpa.properties.hibernate.physical_naming_strategyのプロパティをそれぞれ使用します。

+2

詳細な回答をお寄せいただきありがとうございます。しかし、私の無知を言い訳してください。どうすれば私が休止状態に移行することができますか?すでに存在するものを壊すことなく?現在、 'org.hibernate.cfg.ImprovedNamingStrategy'を使用している名前付け戦略に代わる命名戦略がありますか?または、Springブートが正式に移行するまで、Hibernate 5をその時点で保持しておく方がよいでしょうか? – prettyvoid

6

アップデートJuly 2016:Spring Boot 1.4.0のリリースでは、デフォルトのHibernate 5 is used as the default JPA persistence providerがリリースされました。


ticket about migrating to Hibernate 5は今、いくつかの時間がある - 主な後退は、いくつかの名前戦略の非互換性であるようです。現在チケットは現在にスケジュールされています。1.4.0

+0

1.4.0は、現在休止状態5は、デフォルトのJPA永続性プロバイダであることでリリースされます。 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes –

-1

ありがとうございました!多くの試練の後、このソリューションは私にとって魅力のように働いた!私は、カスタム戦略を実施し、以下に示すように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 
+0

com.quicken.ups.entities.utils.DBFieldNamingStrategyのコードはどこにありますか? –

+0

はい完全な実例を含めてください。 – Decoded