私のチームは、Hibernate 3.xの下で長い間hibernate Criteria APIを使用してきました。最近、Hibernateのバージョンを5にアップグレードしたいが、Criteria APIはもはや推奨されていないようだ。しかしJPAは、私たちが危険にさらされたくない全く異なるAPIのように見えます。私たちは古い基準を使い続けるべきですか?レガシー基準APIはまだ推奨されていますか?
答えて
まあ、Version 5.0 Criteria Chapterに警告がかなりくそ大きいです:
Hibernateは非推奨と考えるべきである、古い、レガシーorg.hibernate.CriteriaのAPIを提供しています。これらのAPIを対象とした機能の開発はありません。最終的に、Hibernate固有の基準機能は、JPA javax.persistence.criteria.CriteriaQueryの拡張機能として移植されます。 org.hibernate.Criteria APIの詳細については、レガシーHibernate Criteria Queriesを参照してください。
そして、もっとあります:我々はそれができれいな外観を表してJPA APIが優れていることが信じているものの、古い休止org.hibernate.CriteriaクエリAPIの
ユーザーは、一般的なアプローチを認識しますそのAPIから学んだ教訓。
あなたのチームにとっては本当にそうです。 JPA APIに慣れるまでにはしばらく時間がかかりましたが、今はかなりスムーズに航行しています。私は非常に大きなフェッチのためのパフォーマンスのためにHibernateに戻ってきましたが、一般的に私はJPAを使って何の問題もありません。私は基本的なアクセスのために@NamedQueries
を使用する傾向があり、さらに動的なものが必要な場合はCriteria
のAPIを使用する傾向があります。
EDIT:更新パフォーマンスの問題を解決できました。アプリケーションは厳密にJPAになりました。
従来のHibernate Criteria APIからJPA APIに時間制限/プロジェクトの期限/その他のリスクを理由にコードを移動できない場合は、タイムラインを設定する必要があります。 Hibernateは、廃止予定のCriteria APIを次の2つのメジャーバージョン内に完全にドロップします。
- 1. stringWithContentsOfFile推奨されていません
- 2. beginSheetForDirectory ...推奨されていません
- 3. Facebook APIコール - 「このAPIバージョンは推奨されていません」
- 4. なぜNode.jsではドメインAPIが推奨されていませんか?
- 5. なぜStruts2 FilterDispatcherは推奨されていませんか? API文書で
- 6. メディエーターパターンの使用は推奨されていますか?
- 7. djangoプロダクションサーバにはvirtualenvが推奨されていますか?
- 8. は、AxShDocVw.AxWebBrowserは推奨されていませんか?
- 9. File.toURL()は推奨されていませんか?
- 10. Aurelia検証@ensureデコレータは推奨されていませんか?
- 11. mongodbの 'updateMany'機能は推奨されていませんか?
- 12. dojoのonkeypressイベントは推奨されていませんか?
- 13. ハッシュロケットは推奨されていませんか?
- 14. なぜWebViewのLayoutAlgorithm.SINGLE_COLUMNは推奨されていませんか?
- 15. SBJson iOSパーサーメソッドは推奨されていませんか?
- 16. LOGIN_REDIRECT_URLは推奨されていませんか?
- 17. load()メソッドは推奨されていませんか?
- 18. Rails 3.1 - has_and_belongs_to_manyは推奨されていませんか?
- 19. なぜGenFsmは推奨されていませんか?
- 20. なぜabsolutelayoutは推奨されていませんか?
- 21. MFCは推奨されていませんか?
- 22. アクティブレコードベースの更新メソッドは推奨されていませんか?
- 23. PHP 6グローバル変数は推奨されていませんか?
- 24. 評価基準に基づく推奨システムとは何ですか
- 25. GUI APIのパターンまたは推奨
- 26. どのPyPyメモリプロファイラが推奨されていますか?
- 27. どのOSがプログラマに推奨されていますか?
- 28. ParameterizedRowMapperが推奨されていますかRowMapper
- 29. 推奨されないコンパイルエラー
- 30. iOS 7ではGKPeerPickerControllerが推奨されていません