Hibernateの学習曲線は急勾配ですが、次の利点もあります。
- 「ダーティチェック」により、挿入/更新が簡単になります。サービスを導入すると、サービスの行を変更せずに新しいフィールドを簡単に追加できます。新しい列を追加してそれらにデータを入力するだけで、Hibernateが永続性の部分を処理します。
- Hibernateは、「失われた更新」 を解決できます。 楽観的なロック同時実行制御のために問題が発生します。
- インメモリデータベース(HSQLDB、H2、Derby)のスキーマを自動的に生成できるため、統合テストが簡単になります。
- キャッシングプラグインをサポートしており(サードパーティの第2レベルのキャッシングプロバイダーを介して)、一部のプロバイダーでは「トランザクション」キャッシュと「クラスター化」キャッシュの両方を使用できます。
- AUDITサポート(Envers)が組み込まれています
つまり、本番環境で正常に実行されているORMフレームワークを使用せずにPHPで記述された何百万ものWebアプリがあるため、これは「デフォルト」の永続性ソリューションではありません。
Hibernateは、キャッシング、監査、並行性の信頼性が必須の非機能要件であるエンタープライズアプリケーションに対してはるかに意味があると思います。