web-dev-qa-db-ja.com

Java8と互換性のある最小のHibernateバージョン

ユーザーコードがJava8機能を使用するJava8JREでの実行をサポートするHibernateの最小バージョンを見つけようとするとひどい時間があります。

このバグ を見つけましたが、HibernateでJava8機能を利用することについて説明しています。Hibernate5.2で計画されており、Wildflyが出荷してJava8を完全にサポートすると主張しているため、Hibernate4.3.1はすでにJava8をサポートしています。 。

休止状態のバグトラッカーで Java8に関連するバグを見つけようとしましたが、やはりすべてが「新しすぎる」ものです。

最後に、Hibernateリリースノートで.0バージョンを検索しましたが、成功しませんでした。リリースノートには、以前のRCまたはベータリリース以降の変更のみが記載されているようです... 4.3のすべてのRCおよびベータリリースを追跡してみました.0.Finalおよび4.2.0.Finalですが、そのような言及を見つけることができませんでした。

現在Hibernate4.2.12.Finalを使用していますが、Java8の使用を開始できるのか、それとも新しいバージョンのhibernate(おそらく4.3.x)にアップグレードする必要があるのでしょうか。

状況によっては、TomEEをアプリケーションサーバーとして使用しています。 1.7.0は、Java8をサポートするようにリリースされたばかりです。ただし、hibernate 4.3.xにアップグレードする必要がある場合は、これを見てきたように、Hibernate4.3.xをTomEEと一緒に使用できないのではないかと少し心配しています。 "ただし、Hibernate 4.3+(JPA 2.1)はJava EE 7。 " であるため、TomEEではサポートされていません。したがって、可能であれば4.2.xaを少し長くします。

EDIT:よく私は this を見つけました、そこで誰かが「私たちは休止状態を使用します(そして4.3.xはJava 8) "。したがって、4.3.xが必要である可能性があります。

10

「ユーザーコードはJava8の機能を使用する」という意味によって異なります。私の職場では、Hibernate3の古いバージョンとJava 8を使用しており、正常に動作します。ただし、どのエンティティもJava 8機能、私たちのエンティティを使用するコードのみが行います。

HibernateとJava 8の問題は、ラムダまたはデフォルトのメソッドと新しいOptionalクラスおよびtimeを使用するエンティティをマップする方法を知ることに関連していると思います。パッケージ。

それらにマップする必要がない場合は、問題ないはずです。

5
dkatzel

他の回答で説明されたランタイム互換性に加えて、Hibernateはバージョン5.0.x以降の hibernate-Java8 モジュールを提供します-これは主にJavaに対してJava 8固有のサポートを追加します.timeパッケージのデータ型。

0
Kunda