Javaベースのオブジェクト-リレーショナルマッピング(ORM)フレームワークであるHibernate ORM 4.3の最終版が先日リリースされた。ストアドプロシージャのサポートとエンティティグラフを提供するとともに,2013年5月にリリースされたJPA 2.1仕様 – JSR 338の実装として認定されている。
今回のリリースのおもな目的は,JPA2.1仕様に加えて,次のような新機能をサポートすることにある。
- プロバイダやデータベースベンダに依存しない,標準化されたストアドプロシージャと関数呼び出し処理のサポート。
- タイプセーフな方法によるUPDATEおよびDELETEクエリの定義と実行が可能になった。
- ライフサイクルイベントを個別のクラスに実装するためのエンティティリスナで,依存性注入のためにCDI標準 (JSR-299) が使用可能になった。
- AttibuteConvererによって,データベース内の表現と対応するオブジェクトの間で,基本データ値を変換できるようになった。
- Entityグラフによって,エンティティとそのサブエレメントがロードされる方法を定義できるようになった。グラフのロードされる方法を動的に変更することも可能だ。
- プロバイダに依存しない,標準化されたスキーマ生成方法のサポート。すべてのプロバイダが対応する,構成設定のベースラインも提供されている。
- 永続コンテキストと現在のトランザクションとの同期がSynchronizationTypeでコントロール可能になった。
- @ConstructorResultアノテーションを使用することで,SQLクエリから返された引数値を用いたオブジェクト構築が可能になった。
新しいJPA仕様に関連しないその他の重要な変更には,次のようなものがある。
- OSGi環境のサポートが拡張された。Hibernate 5ではさらにサポートが向上する予定だ。
- インラインのダーティチェックがサポートされた。Hibernate内での新たなバイトコード拡張のサポートに基づいて,状態の変化したエンティティを検出する。
新バージョンに対応してドキュメントもアップデートされている。